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地址的主要内容,如果未能解决你的问题,请参考以下文章

ip地址转换成16进制long

十进制数字如何转换成IP地址?

IP地址转换为十进制,反之亦然

EXCEL中如何把IP地址批量转换成十进制数字,如下图

excel进制转换 excel常用的进制转化操作过程

IP地址的二进制是怎么转化成十进制的?