Pythonで「socket.error:[Errno 99]要求されたアドレスを割り当てることはできません。」

Pythonで「socket.error:[Errno 99]要求されたアドレスを割り当てることはできません。」

次のようにICMPネットワークスニファを作成しました。

import socket,os
host="192.168.1.7"
#create a socket protocol
socket_protocol=socket.IPPROTO_ICMP
sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
sniffer.bind((host, 6677))
sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
print(sniffer.recvfrom(65565))

「192.168.1.7」は、私の無線ネットワークインターフェイスが接続されているルータに接続された他のPCのローカルアドレスです。 Wiresharkキャプチャを通じてこのアドレスを取得しました。

コードを実行すると、次のエラーが発生します。

Traceback (most recent call last):
  File "/root/test.py", line 18, in <module>
    sniffer.bind((host, 6677))
socket.error: [Errno 99] Cannot assign requested address

ワイヤレスカードインターフェイスローカルIPアドレス(「192.168.1.9」)を使用すると、すべてがうまく機能します。

このエラーを回避するにはどうすればよいですか?よろしくお願いします!

ベストアンサー1

おすすめ記事