2013-12-13 54 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)