ipaddress-Python中的IPv4 / IPv6操作库

Internet协议当前正在从版本4迁移到版本6。这是必需的,因为版本4没有提供足够的地址来处理越来越多的具有直接连接到Internet的设备。

IPv4地址由32位组成,表示为四个八位组,称为“八位字节”。这是一种“点分十进制”格式,其中每个八位八位字节都可以具有0到255的十进制值。

例如:192.168.1.1

带有CIDR表示法的IPv4地址:192.168.1.1/24,其中24表示前三个八位位组标识网络,最后八位位组标识节点。

IPv6地址的长度为128位。它使用十六进制表示法。IPv6地址中的每个位置代表4位,其值从0到f。128位分为8组,每组16位,以冒号分隔。

范例: 2001:db8:abcd:100::1/64

所有IPv6地址都使用CIDR表示法来确定将多少个前导位用于网络标识,将其余的前导位用于主机/接口标识。

Python的标准库具有ipaddress模块,该模块提供了在IPv4和IPv6地址和网络上创建,操作和操作的功能。

该模块提供以下工厂功能以方便地创建IP地址,网络和接口:

IP地址()

根据作为参数传递的IP地址返回一个IPv4Address或IPv6Address对象。可以提供IPv4或IPv6地址。

>>> import ipaddress

>>> ipaddress.ip_address('192.168.0.1')

IPv4Address('192.168.0.1')

>>> ipaddress.ip_address('2001:ab7::')

IPv6Address('2001:ab7::')

ip_network()

根据作为参数传递的IP地址返回IPv4Network或IPv6Network对象。

>>> ipaddress.ip_network('192.168.100.0/24')

IPv4Network('192.168.100.0/24')

>>> ipaddress.ip_network('2001:db8:abcd:100::/64')

IPv6Network('2001:db8:abcd:100::/64')

ip_interface()

根据作为参数传递的IP地址返回IPv4Interface或IPv6Interface对象。

>>> ipaddress.ip_interface('192.168.100.10/24')

IPv4Interface('192.168.100.10/24')

>>> ipaddress.ip_interface('2001:db8:abcd:100::1/64')

IPv6Interface('2001:db8:abcd:100::1/64')

ipaddress模块定义以下类:

IPv4Address(地址)

该构造函数返回一个IPv4地址对象。

有效的IPv4地址通过以下方式标识:

以十进制点表示的字符串,由四个小数点组成,范围在0到255之间(包括0和255),以点分隔(例如192.168.0.1)。

一个整数,其二进制等效值为32位。

打包为长度为4的字节对象的整数(最重要的八位字节在前)。

>>> ipaddress.IPv4Address('192.168.0.1')

IPv4Address('192.168.0.1')

>>> ipaddress.IPv4Address(3162581505)

IPv4Address('188.129.42.1')

>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')

IPv4Address('192.168.0.1')

IPv6Address()

构造一个IPv6地址。

有效的IPv6地址的构成如下:

由八组四个十六进制数字组成的字符串,每组代表16位。各组之间用冒号隔开。

可以容纳128位的整数。

打包为长度为16的字节对象的整数,字节序为big-endian。

>>> ipaddress.IPv6Address('2001:db8::1000')

IPv6Address('2001:db8::1000')

>>> ipaddress.IPv6Address("::abc:7:def")

IPv6Address('::abc:7:def')

返回适当的版本号

>>> add = ipaddress.IPv4Address('192.168.0.1')

>>> add.version

4

>>> ip = ipaddress.IPv6Address('2001:db8::1000')

>>> ip.version

6

以上是 ipaddress-Python中的IPv4 / IPv6操作库 的全部内容, 来源链接: utcz.com/z/338158.html

回到顶部