2013-12-13 87 views
3

我想這段代碼爲蟒蛇如何在python中發送數據包?

data= "University of texas at San Antonio" 
a=IP(dst="129.132.2.21")/TCP()/Raw(load=data) 
sendp(a) 

使用Scapy的發送數據包,但我收到提示在第三行「sendp(一)」的說法

Traceback (most recent call last): 
    File "<pyshell#7>", line 1, in <module> 
    sendp(a) 
    File "C:\Python25\lib\site-packages\scapy\sendrecv.py", line 259, in sendp 
    __gen_send(conf.L2socket(iface=iface, *args, **kargs), x, inter=inter, loop=loop, 
    count=count, verbose=verbose, realtime=realtime) 
    File "C:\Python25\lib\site-packages\scapy\arch\pcapdnet.py", line 313, in __init__ 
    self.outs = dnet.eth(iface) 
    File "dnet.pyx", line 112, in dnet.eth.__init__ 
    OSError: No such file or directory 

請讓我知道在哪裏我錯了嗎。

+0

你得到什麼錯誤?請包括完整的代碼和完整的錯誤追溯。 –

+0

編輯你的問題,並添加錯誤/追溯請。 – Evert

+2

'scapy'沒有正確安裝:它查找'dnet.pyx'並找不到它。我想你需要安裝'dnet'。 – Evert

回答

1

您正在使用sendp()直接與IP數據包,這是錯誤的。使用sendp(Ether()/IP()/...)send(IP()/...)

順便說一下,您不需要添加Raw(load=...),因爲Scapy將str視爲Raw

那麼試試這個:

data = "University of texas at San Antonio" 
a = IP(dst="129.132.2.21")/TCP()/data 
send(a)