Ric*_*son 14 python sockets fedora raw-sockets scapy
有没有人成功在PlanetLab节点上使用Scapy(运行Fedora 12)?
我知道安全的原始套接字限制,但似乎我可以通过设置发送数据包通过Scapy conf.L3socket=L3RawSocket.至于数据包的接收,我无法让Scapy工作,所以我只使用tcpdump.
TCP和ICMP似乎有效:
UDP没有:
是否需要设置任何其他参数才能接收这些ICMP数据包?
不确定这是否有帮助,但根据我的经验,为了在 scapy 中接收数据包,您必须使用 sr 或 sr1 方法:
sr1(IP(dst="192.168.1.8")/UDP(dport=60112))
开始发射: ...已完成发送 1 个数据包。收到 4 个数据包,得到 1 个答复,剩余 0 个数据包
<IP version=4L ihl=5L tos=0xc0 len=56 id=47804 flags= frag=0L ttl=64 proto=icmp chksum=0x6274 src=192.168.1.8 dst=192.168.1.2 options='' |<ICMP type=dest-unreach code=3 chksum=0x59eb unused=0 |<IPerror version=4L ihl=5L tos=0x0 len=28 id=1 flags= frag=0L ttl=64 proto=udp chksum=0x1dfc src=192.168.1.2 dst=192.168.1.8 options='' |<UDPerror sport=domain dport=60112 len=8 chksum=0xb803 |>>>>
Run Code Online (Sandbox Code Playgroud)
sr() 函数用于发送数据包和接收应答。该函数返回几个数据包和答案,以及未应答的数据包。函数 sr1() 是一种变体,它仅返回一个响应所发送的数据包(或数据包集)的数据包。-来源