簡體   English   中英

如何在python中將字符串轉換為IP地址

[英]how can I convert a string to ip address in python

我如何將字符串ip地址轉換為十進制數字。 例如,我有一個數據字節= b'363,3,1778952384,7076' ,這里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有一個ipaddress模塊,可以處理這種事情。 它已添加到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]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM