ipaddress --- IPv4/IPv6 操作函式庫¶
原始碼:Lib/ipaddress.py
ipaddress provides the capabilities to create, manipulate and
operate on IPv4 and IPv6 addresses and networks.
The functions and classes in this module make it straightforward to handle various tasks related to IP addresses, including checking whether or not two hosts are on the same subnet, iterating over all hosts in a particular subnet, checking whether or not a string represents a valid IP address or network definition, and so on.
This is the full module API reference—for an overview and introduction, see ipaddress 模組介紹.
在 3.3 版被加入.
Convenience factory functions¶
The ipaddress module provides factory functions to conveniently create
IP addresses, networks and interfaces:
- ipaddress.ip_address(address)¶
Return an
IPv4AddressorIPv6Addressobject depending on the IP address passed as argument. Either IPv4 or IPv6 addresses may be supplied; integers less than2**32will be considered to be IPv4 by default. AValueErroris raised if address does not represent a valid IPv4 or IPv6 address.>>> ipaddress.ip_address('192.168.0.1') IPv4Address('192.168.0.1') >>> ipaddress.ip_address('2001:db8::') IPv6Address('2001:db8::')
- ipaddress.ip_network(address, strict=True)¶
Return an
IPv4NetworkorIPv6Networkobject depending on the IP address passed as argument. address is a string or integer representing the IP network. Either IPv4 or IPv6 networks may be supplied; integers less than2**32will be considered to be IPv4 by default. strict is passed toIPv4NetworkorIPv6Networkconstructor. AValueErroris raised if address does not represent a valid IPv4 or IPv6 address, or if the network has host bits set.>>> ipaddress.ip_network('192.168.0.0/28') IPv4Network('192.168.0.0/28')
- ipaddress.ip_interface(address)¶
Return an
IPv4InterfaceorIPv6Interfaceobject 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 than2**32will be considered to be IPv4 by default. AValueErroris raised if address does not represent a valid IPv4 or IPv6 address.
One downside of these convenience functions is that the need to handle both IPv4 and IPv6 formats means that error messages provide minimal information on the precise error, as the functions don't know whether the IPv4 or IPv6 format was intended. More detailed error reporting can be obtained by calling the appropriate version specific class constructors directly.
IP Addresses¶
Address objects¶
The IPv4Address and IPv6Address objects share a lot of common
attributes. Some attributes that are only meaningful for IPv6 addresses are
also implemented by IPv4Address objects, in order to make it easier to
write code that handles both IP versions correctly. Address objects are