192.168.1.1
ASCII IPをホスト バイト オーダーに変換する必要があります。次の関数を使用しようとしましたが、成功しませんでした。
import socket
socket.ntohl(socket.inet_aton('192.168.1.1'))
ただし、ntohl 関数は、文字列を受け入れることができないというエラーをスローしますが、int/long が必要です。
この.inet_anon()
関数は、パックされた32ビットのバイナリ値を返します。struct
モジュールを使用して、それを整数に変換できます。
import struct
import socket
socket.ntohl(struct.unpack('I', socket.inet_aton('192.168.1.1'))[0])
>>> socket.inet_aton.__doc__
'inet_aton(string) -> packed 32-bit IP representation\n\nConvert an IP address in string format (123.45.67.89) to the 32-bit packed\nbinary format used in low-level network functions.'
import struct
struct.unpack('>L', socket.inet_aton('192.168.1.1'))[0]