Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 序列化和打印IP地址的标准方法?_Python_Ip_Data Visualization_Data Science - Fatal编程技术网

Python 序列化和打印IP地址的标准方法?

Python 序列化和打印IP地址的标准方法?,python,ip,data-visualization,data-science,Python,Ip,Data Visualization,Data Science,我试图找到一种将IP地址转换为整数或实数的方法,这样就可以对它们进行数学分组,并以有意义的方式绘制它们。理想情况下,具有相同最左侧八位字节的IP应该相似,共享最左侧两个八位字节的IP应该更相似,以此类推 有没有一个标准的,公认的方法来做到这一点?比如说,编入Python库?还是我要自己设计算法 谢谢。你是说,像。。。那个 具有相同最左侧八位字节的IP地址将非常接近,因为如果将地址转换为int,它只引用IP地址所代表的实际数字(10.9.8.7)≙ 10*256^3+9*256^2+8*256^1

我试图找到一种将IP地址转换为整数或实数的方法,这样就可以对它们进行数学分组,并以有意义的方式绘制它们。理想情况下,具有相同最左侧八位字节的IP应该相似,共享最左侧两个八位字节的IP应该更相似,以此类推

有没有一个标准的,公认的方法来做到这一点?比如说,编入Python库?还是我要自己设计算法

谢谢。

你是说,像。。。那个

具有相同最左侧八位字节的IP地址将非常接近,因为如果将地址转换为int,它只引用IP地址所代表的实际数字(10.9.8.7)≙ 10*256^3+9*256^2+8*256^1+7*256^0)

它也适用于IPv6:

>>> int(ipaddress.ip_address("2001:db8::1"))
42540766411282592856903984951653826561

我曾经考虑过这个问题,但在实践中,这个模块生成的数字彼此之间有很大的差异,实际上应该分组在一起。e、 g.10.255.35.2==184493058和10.1.1.2==167837954。这个翻译比我理想中想要的要嘈杂一些,但也许它必须这样做。正如你所看到的,它仍然非常接近。例如,如果要检查第一个八位字节是否匹配,可以将两个值24向右移动,即
184493058>>24==167837954>>24
>>> int(ipaddress.ip_address("2001:db8::1"))
42540766411282592856903984951653826561