我尝试创建 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”)时,一切正常。
我该怎么做才能防止这个错误...提前致谢!