标准化的方式来序列化和绘制IP地址?

时间:2016-05-11 18:51:36

标签: python ip data-visualization data-science

我正在尝试找到一种将IP地址转换为整数或实数值的方法,以便可以在数学上对它们进行分组并以有意义的方式绘制。理想情况下,具有相同最左边八位字节的IP将是相似的,共享最左边两个八位字节的IP将更相似,依此类推。

是否有标准的,可接受的方式来执行此操作?比如说,一个Python库?或者我只是要做自己的算法?

感谢。

1 个答案:

答案 0 :(得分:2)

你的意思是,像... ipaddress module

>>> import ipaddress
>>> i = ipaddress.ip_address('10.9.8.7')
>>> int(i)
168364039

具有相同最左边八位字节的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