Comments (2)
This is correct behavior. Your two inputs are not equal: In Python 2, string literals are byte strings by default, whereas in Python 3 (as well as many other programming languages), strings literals are character strings by default.
So Python 2's "2001:db8:61::/64"
is really b"2001:db8:61::/64"
, and ipaddress.ip_network(b"2001:db8:61::/64")
is IPv6Network(u'3230:3031:3a64:6238:3a36:313a:3a2f:3634/128')
, both with this backport and in the standard library in Python 3.3+. This is because
>>> ipaddress.ip_address(u'3230:3031:3a64:6238:3a36:313a:3a2f:3634').packed
b'2001:db8:61::/64'
and if you pass in any representation of an address, you get the network with just that address.
To avoid this mistake, make sure to pass in character strings if you want ipaddress to construct from a character representation, for example by using ipaddress.ip_network(u"2001:db8:61::/64")
.
For more information, see the README.
Any other behavior would introduce very dangerous silent incompatibilities when switching between this ipaddress and the standard library one.
from ipaddress.
Thanks for the (very fast) clarification!
from ipaddress.
Related Issues (20)
- IPv4Address improperly parses a 4 byte string as a valid IP address HOT 1
- unicode/bytes behavior is inconvenient HOT 1
- Why releases are not up-to-date here ? HOT 1
- buildout legacy distribution HOT 8
- Why this is only for python 3.3+ HOT 2
- Support Python 3.3+ with importing through another package name HOT 2
- .reverse_pointer can't handle prefixes HOT 1
- ipaddres in requirements.txt is incorrectly linked to another project HOT 2
- ip_network not working correctly HOT 1
- Update Python tracking to support scoped IPv6 addresses
- [CVE-2020-14422] Hash collisions in IPv4Interface and IPv6Interface
- About to get dropped from gentoo portage because of python 2.7 HOT 2
- class IPv4Network hosts function does not work when prefixlen is /31 HOT 1
- Update to version from Python 3.8
- packed fails for IPv6 address
- CWE-20 Input Verification Vulnerabilities
- Security issues
- Shouldn't ipaddress.IPv4Address() return bool instead of rising?
- Compatibility for Python 3.11x
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ipaddress.