zoukankan      html  css  js  c++  java
  • python整数与IP地址转换

    python整数与IP地址转换 [转]

    我们有时会将一个整数与IP地址进行互换,用python代码实现很简单
    将一个整数如2000000,变为一个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

    其实这是进制数的转换,我们可以自己写代码
    # 整数to IP地址格式
    >>> def ch1(num):
                 s = []
                 for i in range(4):
                      s.append(str(num %256))
                      num /= 256
            return '.'.join(s[::-1])
    >>> ch1(123456789)
    '7.91.205.21'

    用lambda的方式,整数toIP 地址 一行代码搞定
    >>> ch2 = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)])
    >>> ch2(123456789)
    '7.91.205.21'

    用lambda的方式,IP地址转换到整数
    >>> ch3 = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])
    >>> ch3('7.91.205.21')
    123456789
  • 相关阅读:
    扫盲如何在ECLIPSE中使用条件断点
    春困
    气虚咳喘案
    知足老师论糖尿病
    辨痰之病位与寒热
    常用中药功效比较(任之堂)
    女子全身窜痛案
    小儿外感案
    紫斑案
    读任之堂中药讲记笔记
  • 原文地址:https://www.cnblogs.com/yzxing/p/10019729.html
Copyright © 2011-2022 走看看