Python将IP转换为八进制地址

问题描述:

如何将IP地址转换为python 2.7中的八进制地址? 例如像这样 ':127.0.0.1 = 0177.0000.0000.0001'Python将IP转换为八进制地址

我有尝试这一点,但给我不同的结果

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 
+1

当你的格式字符串只是一个单一的符你不需要'str.format';只需使用'format(int(x),'04o')'。 – abarnert 2014-09-13 00:18:14

+0

@abarnert谢谢,我不知道,会编辑我的答案 – ashwinjv 2014-09-13 00:19:54

试试这个:

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