2017-06-08 2 views
2

Wenn ich INET_ATON() wie dieseBinäre Darstellung eines IP mit INET_ATON()

packed_ip_addr = socket.inet_aton(ip_addr) 

und dem Wert des gepackten IP drucken:

print "Packed IP: %s" %packed_ip_addr 

Nichts im Bildschirm angezeigt. Wie kann ich das genaue binäre Format der IP-Adresse drucken?

+0

'socket.inet_aton ('127.0.0.1')' gibt ein 'bytes' zurück. Was meinst du mit nichts auf dem Bildschirm gezeigt? –

Antwort

0

Mit str.format() und bytearray(), können Sie die binäre Darstellung dieser IP haben kann: 192.168.1.2 wie unten:

Sowohl Python2 und 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' 
0

Try this:

>>> 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 
Verwandte Themen