IP与整数互相转换

IP转换为整数
方法一

ch = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])

整数转换为IP
方法一

>>> import socket
>>> import struct
>>> int_ip = 123456789
>>> ip = socket.inet_ntoa(struct.pack('I',socket.htonl(int_ip)))      #int to ip address
'7.91.205.21'
>>> socket.ntohl(struct.unpack("I",socket.inet_aton(str(ip)))[0])     #ip address to int
123456789L   

方法二

def ch1(num):
             s = []
             for i in range(4):
                  s.append(str(num %256))
                  num /= 256
        return '.'.join(s[::-1])

你可能感兴趣的:(IP与整数互相转换)