Проблемы с scapy, sr1 - PullRequest
       30

Проблемы с scapy, sr1

0 голосов
/ 25 мая 2020

Я создал плавающий код, чтобы отправить пакет на адрес www.google.com, но не получаю ответа.

КОД


from scapy.all import IP, ICMP, sr1 

ip_layer = IP(src='192.168.224.131',  dst='www.google.com')  

#rint(ip_layer.show()) 

icmp_req = ICMP()

#print(icmp_req.show())  

packet = ip_layer / icmp_req 

#print(packet.show()) 

received_packet = sr1(packet, timeout=2) 

if received_packet: 
    print(received_packet.show()) 

ВЫХОД

Begin emission:
.Finished sending 1 packets.

Received 1 packets, got 0 answers, remaining 1 packets

1 Ответ

1 голос
/ 26 мая 2020

Этот код работает на моей машине (то есть, вероятно, он уникален для вашего компьютера / сети). Это означает, что одна из множества вещей может быть неправильной:

  • IP-адрес, который вы используете в src, неверен (вы можете проверить это с помощью ifconfig на linux и ipconfig на windows).
  • тайм-аут слишком мал (я иногда видел проблемы при тайм-ауте 2 секунды и переходе на 5 исправлений). Я вижу результат, аналогичный вашему, если я установил тайм-аут на 0,001 (т.е. Google не будет отвечать мне через 1 мс).
  • Ваш брандмауэр (ОС или маршрутизатор) может блокировать этот трафик c.
  • Другая проблема с сетью, такая как DNS или сбрасывание трафика c. Обратите внимание, что эхо-запросы являются трафиком с низким приоритетом c для большинства маршрутизаторов, поэтому они иногда будут пропадать, но это не означает, что обычный трафик c будет испытывать такие же потери.

Это это ответ, который я получил после изменения IP-адреса src:

bash-5.0$ python temp.py
Begin emission:
....Finished sending 1 packets.
.*
Received 6 packets, got 1 answers, remaining 0 packets
###[ IP ]### 
  version   = 4
  ihl       = 5
  tos       = 0x0
  len       = 28
  id        = 0
  flags     = 
  frag      = 0
  ttl       = 50
  proto     = icmp
  chksum    = 0xfe6
  src       = 172.217.9.132
  dst       = 192.168.1.246
  \options   \
###[ ICMP ]### 
     type      = echo-reply
     code      = 0
     chksum    = 0x0
     id        = 0x0
     seq       = 0x0
###[ Padding ]### 
        load      = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

None
...