Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在scapy中通过物理环回发送数据包_Python_Linux_Networking_Scapy - Fatal编程技术网

Python 在scapy中通过物理环回发送数据包

Python 在scapy中通过物理环回发送数据包,python,linux,networking,scapy,Python,Linux,Networking,Scapy,我最近发现了Scapy&它看起来很棒 我正在尝试查看NIC上物理环回模块/存根上的简单流量 但是斯卡皮嗅嗅什么也不给 我发送数据包所做的是: payload = 'data'*10 snf = sniff(filter="icmp", iface="eth0") for x in xrange(1, 10): sendp(Ether(dst=src_mac, src=spoof_src_mac)/IP(dst=dst_ip, src=spoof_src_ip)/ICMP()/payload,

我最近发现了Scapy&它看起来很棒

我正在尝试查看NIC上物理环回模块/存根上的简单流量

但是斯卡皮嗅嗅什么也不给

我发送数据包所做的是:

payload = 'data'*10
snf = sniff(filter="icmp", iface="eth0")
for x in xrange(1, 10):
  sendp(Ether(dst=src_mac, src=spoof_src_mac)/IP(dst=dst_ip, src=spoof_src_ip)/ICMP()/payload, iface=ifname)

f.open('scapylog.log', 'w')
f.write(str(snf))
src_mac=我的mac地址和dsp_ip我的ip地址。“欺骗”字段只是随机(有效)mac和ip值

生成的嗅探/日志文件为空。无需报告

我可以通过接口的ifconfig统计信息看到网络中的流量,每次我调用这个脚本时,接口的ifconfig统计信息都会增加,所以流量是流动的

如果有人知道为什么我没有看到我的流量,我会很高兴听到:)


谢谢

我自己在寻找类似的解决方案时偶然发现了你的问题。我在页面上找到了这个:

环回接口是一个非常特殊的接口。通过它的数据包并不是真正的组装和分解。内核将数据包路由到其目的地,而它仍然存储在内部结构中。你看到的tcpdump-i-lo只是一个假象,让你觉得一切都正常。内核不知道Scapy在背后做什么,所以您在环回接口上看到的也是假的。除了这个不是来自当地的建筑。因此内核将永远不会收到它

为了与本地应用程序通信,您需要在上层构建数据包,使用PF_INET/SOCK_RAW套接字,而不是PF_数据包/SOCK_RAW(或Linux以外的其他系统上的等效套接字):

>>conf.L3socket
>>>conf.L3socket=L3RawSocket
>>>sr1(IP(dst=“127.0.0.1”)/ICMP()

您是否正在尝试录制数据包捕获?
>>> conf.L3socket
<class __main__.L3PacketSocket at 0xb7bdf5fc>
>>> conf.L3socket=L3RawSocket
>>> sr1(IP(dst="127.0.0.1")/ICMP())
<IP  version=4L ihl=5L tos=0x0 len=28 id=40953 flags= frag=0L ttl=64 proto=ICMP chksum=0xdce5 src=127.0.0.1 dst=127.0.0.1 options='' |<ICMP  type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |>>