山东正元建设网站,手机建立网站,珠海网站建设珠海易推网,aso优化排名推广背景知识:ip地址(这里都是指的ipv4地址)是一个32位(4字节)的无符号整数。为方便记忆#xff0c;把每个字节看做一个无符号数#xff0c;并以.号隔开。比如常见的私有地址192.168.100.1, dns 114.114.114.114。下面这段代码#xff0c;展示python如何处理ip地址的一些方法。i… 背景知识:ip地址(这里都是指的ipv4地址)是一个32位(4字节)的无符号整数。为方便记忆把每个字节看做一个无符号数并以.号隔开。比如常见的私有地址192.168.100.1, dns 114.114.114.114。 下面这段代码展示python如何处理ip地址的一些方法。import socket, structinet_aton:字符串转换成一个32位的网络字节序二进制值inet_addr:返回值为32位的网络字节序二进制inet_ntoa:将一个32位的网络字节序二进制IPv4地址转换成相应的点分十进制数串ip220.170.193.10def iptonum(): numsip.split(.) num0 for i in nums: # num8 # numint(i) num (num8) int(i) #ip数值 print(f{ip}:{num}) print(f十六进制{hex(num)}) print(f转为网络顺序socket.htonl(num)) print(f网络顺序十六进制hex(socket.htonl(num)))if __name____main__: bytIpsocket.inet_aton(ip) print(f字符串地址转二进制字节数组{bytIp}) #此时是网络存储顺序 大端模式 ip_num struct.unpack(i,bytIp)[0] print(f二进制字节数组转数字:{ip_num}) #ntohl 网络存储顺序转主机存储顺序 x64为小端模式即数据的高位存在高字节 ip_num_littlesocket.ntohl(ip_num) print(f主机存储顺序{ip_num_little}) iptonum()