python IP转int 和int 转IP

python IP转int 和int 转IP

IP地址意义

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

根据这些特性就能解析出ip地址

IP转int
def to_int(ip):
    i=0
    summ=0
    for num in ip.split('.')[::-1]:
        summ =summ+ int(num) * 256**i
        i += 1
    return summ
print to_int("7.91.205.21")
IP转int 一行lambda 解决
to_int = lambda x:'.'.join([str(x/(256**i)%256) for i in range(4)][::-1])

提示 [::-1]是数组元素反转

int 转 IP
def to_ip(num):
    s = []
    for i in range(4):
        s.append(str(num %256))
        num /= 256
    return '.'.join(s[::-1])
print to_ip(123456789) 
int转IP 一行lambda 解决
to_ip = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。

打完收工,喜欢别忘了点个赞。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值