2013-07-31 6 views
4

Я играю с Scapy, и я хочу использовать его в скрипте Python, но отправка пакетов кажется проблемой. Вот мой код.Отправка пакетов с помощью Scapy в среде Python

Scapy Shell:

send(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World") 

Это прекрасно работает и отправляет пакет.

Python скрипт:

#! /usr/bin/env python 

from scapy.all import sr1,IP,ICMP 

p=sr1(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World") 

Это работает нормально, но когда он пытается отправить пакет я получаю:

WARNING: No route found for IPv6 destination :: (no default route?) 
Begin emission: 
.Finished to send 1 packets. 
....^C 
Received 5 packets, got 0 answers, remaining 1 packets 
+0

Что именно ваш вопрос? Мне кажется, что все работает нормально. – RyPeck

+0

В скопированной среде я получаю вывод «Отправленные 1 пакеты», и он работает, но с помощью python он только начинает получать пакеты и не отправляет их –

ответ

11

Когда вы запустите в среде Python вы используете функцию sr1. Функция sr1 отправит пакет, а затем ждет ответа, сохраняя количество принятых пакетов. Подробнее здесь -

http://www.secdev.org/projects/scapy/doc/usage.html#send-and-receive-packets-sr

Чтобы получить поведение вы хотите, вам нужно использовать функцию send, так же, как вы это делали при использовании Scapy оболочки.

#! /usr/bin/env python 

from scapy.all import send, IP, ICMP 

send(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World") 
+1

Спасибо вам большое за помощь –

Смежные вопросы