[New-bugs-announce] [issue46646] `address` arg can be `bytes` for `ip_*` functions in `ipaddress` module

Nikita Sobolev report at bugs.python.org
Sat Feb 5 02:05:52 EST 2022


New submission from Nikita Sobolev <mail at sobolevn.me>:

Right now the docs say:

> ipaddress.ip_interface(address)
> Return an IPv4Interface or IPv6Interface object depending on the IP address passed as argument. **address is a string or integer** representing the IP address. Either IPv4 or IPv6 addresses may be supplied; integers less than 2**32 will be considered to be IPv4 by default. A ValueError is raised if address does not represent a valid IPv4 or IPv6 address.

Note the `address is a string or integer` part.

But, this is not true. Counter example:

```
>>> import ipaddress
>>> ipaddress.ip_interface(b'0000')
IPv4Interface('48.48.48.48/32')
>>> ipaddress.ip_interface(b'1111')
IPv4Interface('49.49.49.49/32')
```

So, packed version that accepts `bytes`, should be also mentioned.

For `ip_address` types are not mentioned:

> ipaddress.ip_address(address)
> Return an IPv4Address or IPv6Address object depending on the IP address passed as argument. Either IPv4 or IPv6 addresses may be supplied; integers less than 2**32 will be considered to be IPv4 by default. A ValueError is raised if address does not represent a valid IPv4 or IPv6 address.

I will send a PR with proposed changes.

----------
assignee: docs at python
components: Documentation
messages: 412562
nosy: docs at python, sobolevn
priority: normal
severity: normal
status: open
title: `address` arg can be `bytes` for `ip_*` functions in `ipaddress` module
type: behavior
versions: Python 3.10, Python 3.11, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue46646>
_______________________________________


More information about the New-bugs-announce mailing list