“socket.error: [Errno 99] Não é possível atribuir o endereço solicitado” em python

1

Eu tentei criar um sniffer de rede ICMP da seguinte forma:

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" é um endereço local de outro PC conectado ao roteador ao qual minha interface de rede sem fio está conectada. Eu obtive este endereço fazendo uma captura de wireshark.

quando os códigos são executados, recebo o seguinte erro

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

Quando uso o endereço IP local da interface da placa de rede sem fio ("192.168.1.9"), tudo corre bem.

O que posso fazer para evitar esse erro ... Agradecemos antecipadamente!

    
por repzero 03.04.2015 / 18:07

0 respostas

Tags