如何用python发送数据包?

如何用python发送数据包?,python,scapy,Python,Scapy,我在python中尝试了使用scapy发送数据包的这段代码 data= "University of texas at San Antonio" a=IP(dst="129.132.2.21")/TCP()/Raw(load=data) sendp(a) 但我在第三行“sendp(a)”中得到了错误的说法 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 sendp(a) 文件“C:\Python25\lib\site packages\scapy\sendrecv.py”,第259行,在

我在python中尝试了使用scapy发送数据包的这段代码

data= "University of texas at San Antonio"
a=IP(dst="129.132.2.21")/TCP()/Raw(load=data)
sendp(a)
但我在第三行“sendp(a)”中得到了错误的说法

回溯(最近一次呼叫最后一次):
文件“”,第1行,在
sendp(a)
文件“C:\Python25\lib\site packages\scapy\sendrecv.py”,第259行,在sendp中
__gen_send(conf.L2socket(iface=iface,*args,**kargs),x,inter=inter,loop=loop,
计数=计数,详细=详细,实时=实时)
文件“C:\Python25\lib\site packages\scapy\arch\pcapdnet.py”,第313行,在\uu init中__
self.outs=dnet.eth(iface)
文件“dnet.pyx”,第112行,在dnet.eth.\uu init中__
OSError:没有这样的文件或目录
请告诉我哪里错了。

您将
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)

你犯了什么错误?请包含完整的代码和完整的错误回溯。请编辑您的问题并添加错误/回溯。
scapy
未正确安装:它查找
dnet.pyx
,但找不到它。我想您需要安装
dnet
。这应该可以回答您关于如何使用dnet@Evert的问题。我已经下载了dnet-1.12.win32-py2.5并选择“以管理员身份运行”进行安装。仍然得到相同的错误。我正在研究python 2.5.1
data = "University of texas at San Antonio"
a = IP(dst="129.132.2.21")/TCP()/data
send(a)