如何将字符串 ip 地址转换为十进制数。例如我有一个数据字节= b'363,3,1778952384,7076' , here 1778952384是我的 IP 地址,7076是我的港口。如何将我的 IP 地址转换为十进制数。下面是我的代码,请帮我解决这些问题
/app.py
import socket
from tornado.tcpclient import TCPClient
from tornado import gen
@gen.coroutine
def f(self, message):
global stream
client = TCPClient()
stream = yield client.connect('192.168.8.108', 2620, max_buffer_size=int(1e9))
msg = '192.168.8.101, 8000'.encode('utf-8')
yield stream.write(msg)
data = yield stream.read_bytes(21)
print("bytes=",data) #bytes= b'363,3,1778952384,7076
Python 有一个IP地址 https://docs.python.org/3/library/ipaddress.html可以处理此类事情的模块。它已被添加到 Python 3 的标准库中,但也应该可以安装在早期版本中。
>>> import ipaddress
>>> print(ipaddress.ip_address(1778952384))
IPv4Address('106.8.168.192')
>>> print(str(ipaddress.ip_address(1778952384)))
'106.8.168.192'
您可能还会问有关拆分字符串的问题(在b','
因为它是一个字节串),获取正确的字段,并将其转换为int
:
data = b'363,3,1778952384,7076'
ipaddress.ip_address(int(data.split(b',')[2]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)