簡體   English   中英

在Python中將IP地址字符串轉換為正好4個字節

[英]Converting an IP Address string to exactly 4 bytes in Python

所以這很簡單,但是我很難使它起作用。 我想例如,如果傳入的IP地址字符串是'168.108.114.22',請將其轉換為類似以下的字節對象:

\xA8\x6C\x72\x16

基本上,IP地址的每個部分都轉換為等效的十六進制。

我已經嘗試了很多方法,但無法獲得想要的東西。 使用socket.inet_aton,打包等進行字符串操作。我希望能夠通過套接字發送這些字節,然后在另一端接收並解析它們,但是我很難獲得創建字節對象的外觀。

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

這個

ip='168.108.114.22'

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

在python 3上產生

b'\xa8lr\x16'

如果我理解正確,那應該是您要尋找的東西。

注意:還有更多特定且經過優化的實用程序功能可操作IP地址

暫無
暫無

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

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