excel里将16进制转换为IP地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel里将16进制转换为IP地址相关的知识,希望对你有一定的参考价值。
现在在EXCEL里有一批16进制的数, 需要转换成IP地址的形式,例如:需要将29df39c8 转换为41.223.57.200..有没有哪个大神提供下如何在EXCEL里执行的公式啊.
假设你16位地址在A1,用公式:=HEX2DEC(LEFT(A1,2))&"."&HEX2DEC(MID(A1,3,2))&"."&HEX2DEC(MID(A1,5,2))&"."&HEX2DEC(RIGHT(A1,2))
因为excel自带函数没有连接字符的,所以拆字连字比较麻烦,公式很长。 参考技术A 在这里,运用WINDOWS自带的计数器,并开启它的科学计算功能,以211,91,216,106到3546011754为例,先分别将十进制的206,169,40,2转换成十六进制的d3,5b,d8,6a,再将d3,5b,d8,6a以十六进制的双字节的形式写如计数器,再转换成十进制,就可以得到3546011754.事实上,在平常运用中,常用的方法是这样的:
211 x 16777216 = 3539992576
91 x 65536 = 5963776
216 x 256 = 55296
+ 106 x 1 = 106
--------------------------------
3546011754
与IP的256倍数叠加一致,3546011754也可以以4294967296的倍数叠加!至此,IP的转换已经完成。
Python将IP转换为八进制地址
如何在python 2.7中将IP地址转换为虚线八进制地址?像这样的例子':127.0.0.1 = 0177.0000.0000.0001'
我试过这个,但给我不同的结果
ip = '127.0.0.1'
print '.'.join([oct(int(x)+256)[3:] for x in ip.split('.')])
答案
试试这个:
[编辑:感谢abarnert指出一种更简单的使用格式的方式]
>>> ip = '127.0.0.1'
>>> print '.'.join(format(int(x), '04o') for x in ip.split('.'))
0177.0000.0000.0001
另一答案
试试这个:
print '%04o.%04o.%04o.%04o' % tuple(map(int, ip.split('.')))
另一答案
试试这个:
ip="127.0.0.1"
octalIP='.'.join(["%04o" % int(x) for x in ip.split('.')])
print octalIP
输出:0177.0000.0000.0001
以上是关于excel里将16进制转换为IP地址的主要内容,如果未能解决你的问题,请参考以下文章