簡體   English   中英

python中的十六進制IPv4地址

[英]IPv4 Address to Hex in python

我正在嘗試創建一個程序,該程序采用字符串IPv4地址並將其轉換為十六進制整數。 我的程序可以工作,但是十六進制值是字符串形式,因此我的程序返回值錯誤(例如:“ int()以10為底的無效文字”或“ int()或float()的預期類型。 “)。

example input: 115.255.8.97
example output: 73FF0861


#IPv4 to Hex
splitip = sys.argv[2].split('.')
hexint = hex(int(splitip[0]))[2:].zfill(2) + hex(int(splitip[1]))[2:].zfill(2) + hex(int(splitip[2]))[2:].zfill(2) + hex(int(splitip[3]))[2:].zfill(2)
hexint = hexint.replace('0x','')

任何幫助,將不勝感激!

注意:我的問題是hexint變量是一個字符串。 我的程序需要將值ad設為整數。

使用socket.inet_aton將點分的IPv4地址轉換為字節字符串。

>>> import socket
>>> socket.inet_aton('115.255.8.97')
's\xff\x08a'

然后,將該值傳遞給binascii.hexlify以獲取二進制字符串的十六進制表示形式。

>>> import binascii
>>> binascii.hexlify(socket.inet_aton('115.255.8.97'))
'73ff0861'
>>> binascii.hexlify(socket.inet_aton('115.255.8.97')).upper()
'73FF0861'

暫無
暫無

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

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