2
當我使用INET_ATON()這樣二進制表示與INET_ATON()
packed_ip_addr = socket.inet_aton(ip_addr)
和打印打包IP的值:
print "Packed IP: %s" %packed_ip_addr
在屏幕上顯示沒有。如何打印確切的IP地址二進制格式?
當我使用INET_ATON()這樣二進制表示與INET_ATON()
packed_ip_addr = socket.inet_aton(ip_addr)
和打印打包IP的值:
print "Packed IP: %s" %packed_ip_addr
在屏幕上顯示沒有。如何打印確切的IP地址二進制格式?
使用str.format()
和bytearray()
,你可以有這個IP的二進制表示:192.168.1.2
象下面這樣:
兩個Python2和Python3:
import socket
a = socket.inet_aton("192.168.1.2")
b = bytearray(a)
# If you don't want to have '0b' at the final output:
# c = '{0:b}'.format(int(''.join(map(str, b))))
c = '0b{0:b}'.format(int(''.join(map(str, b))))
# print(c)
print c
>>> '0b1001001010011100110101100'
試試這個:
>>> ip = "192.168.137.39"
>>> print(bin(sum([int(k) * v for k, v in zip(ip.split("."), [1 << 24, 1 << 16, 1 << 8, 1])])))
0b11000000101010001000100100100111
'socket.inet_aton('127.0.0.1')'會返回一個'bytes'。屏幕上沒有顯示什麼意思? –