2013-07-31 58 views
4

我正在玩Scapy,我想在Python腳本中使用它,但發送數據包似乎是一個問題。這是我的代碼。在Python環境中用Scapy發送數據包

Scapy的外殼:

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

在scapy環境中,我得到「發送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

非常感謝你的幫助 –

相關問題