在Python中将IP地址字符串转换为4个字节

2024-09-25 02:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

所以这很简单,但我很难让它发挥作用。例如,如果传入的IP地址字符串是“168.108.114.22”,请将其转换为一个bytes对象,例如:

\xA8\x6C\x72\x16

基本上,IP地址的每一部分都被转换成十六进制的等价物。在

我试了很多方法,但都没能得到我想要的。字符串操作,使用插座,打包等等。我希望能够通过套接字发送这些字节,然后在另一端接收和解析它们,但是我在创建bytes对象时遇到了问题,并且看起来像这样。在


Tags: 对象方法字符串字节bytes插座发挥作用xa8
2条回答

Python的^{}函数应该可以满足您的需要,它返回一个正好包含4个字节的字符串:

import socket

print socket.inet_aton('168.108.114.22')
print socket.inet_aton('65.66.67.68')

这些将显示:

^{pr2}$

要使用^{}再次转换四个字符:

print socket.inet_ntoa('\xA8\x6C\x72\x16')
print socket.inet_ntoa('ABCD')

给予:

65.66.67.68

这个

ip='168.108.114.22'

b_out = bytes(map(int,ip.split('.')))
print(b_out)

在python3上产生

^{pr2}$

如果我没听错的话,那应该是你要找的。在

注意:有更具体和优化的实用程序函数来操作IP地址

相关问题 更多 >