所以这很简单,但我无法解决这个问题。我想,例如,如果传入的IP地址字符串是'168.108.114.22',请将其转换为字节对象,如:
\xA8\x6C\x72\x16
基本上,IP地址的每个部分都转换为十六进制等效值。
我尝试了很多方法,却无法得到我想要的东西。字符串操作,使用socket.inet_aton,打包等。我希望能够通过套接字发送这些字节,然后在另一端接收和解析它们,但是我只是在创建我的字节对象并且看起来像那样
答案 0 :(得分:2)
Python的inet_aton
函数应该做你需要的,它确实返回一个包含4个字节的字符串:
import socket
print socket.inet_aton('168.108.114.22')
print socket.inet_aton('65.66.67.68')
这些会显示:
¨lr
ABCD
使用inet_ntoa
再次转换四个字符:
print socket.inet_ntoa('\xA8\x6C\x72\x16')
print socket.inet_ntoa('ABCD')
,并提供:
65.66.67.68
答案 1 :(得分:1)
此
ip='168.108.114.22'
b_out = bytes(map(int,ip.split('.')))
print(b_out)
在python 3上生成
b'\xa8lr\x16'
如果我理解正确,那应该是你要找的。 p>
注意:有更多特定和优化的实用程序函数来操作IP地址