博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的数字IP实现
阅读量:4982 次
发布时间:2019-06-12

本文共 757 字,大约阅读时间需要 2 分钟。

第一种方法:

import socket, struct    >>> def ip2num(ip):    ...     return struct.unpack("!L", socket.inet_aton(ip))[0]    ...    >>> ip2num('1.1.1.1')    16843009    >>> socket.inet_ntoa(struct.pack('!L', 16843009))    '1.1.1.1'

第二种方法:

>>> import ipaddress    >>> int(ipaddress.IPv4Address('1.1.1.1'))    16843009    >>> ipaddress.IPv4Address(16843009)    IPv4Address('1.1.1.1')   >>> str(ipaddress.IPv4Address('1.1.1.1'))   '1.1.1.1'   >>> ipaddress.ip_address(16843009)   IPv4Address('1.1.1.1')

   ipaddress也是和socket模块交互,需要使用到int和str的内置函数

 

算法:1*256*256*256 + 1* 256*256 + 1*256 +1

用途:

  当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串

    优点:

      节省空间

      便于使用范围查询且效率更高

    缺点:

      因为需要转换,不利于阅读

转载于:https://www.cnblogs.com/flashBoxer/p/9798565.html

你可能感兴趣的文章