2

192.168.1.1ASCII IPをホスト バイト オーダーに変換する必要があります。次の関数を使用しようとしましたが、成功しませんでした。

import socket
socket.ntohl(socket.inet_aton('192.168.1.1'))

ただし、ntohl 関数は、文字列を受け入れることができないというエラーをスローしますが、int/long が必要です。

4

2 に答える 2

2

この.inet_anon()関数は、パックされた32ビットのバイナリ値を返します。structモジュールを使用して、それを整数に変換できます。

import struct
import socket

socket.ntohl(struct.unpack('I', socket.inet_aton('192.168.1.1'))[0])
于 2012-10-11T17:42:54.153 に答える
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]
于 2012-10-11T17:45:42.563 に答える