如何在scapy中从特定的套接字发送数据包?

2024-10-01 19:30:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过创建一个套接字通过scapy发送一些数据包。我想通过我创建的套接字发送数据包。我怎样才能做到这一点

这是我试过的一些代码

pkt = "\x00\x1c\x7fb\xb5\xfd\x00PV\xb8\x08\x9f\x08\x00E\x00\x000/t\x00\x00\x80\x11\x00\x00\n\xe7\xa0\xc6\n\xe7\x922\xd2\xb4\x05\xdc\x00\x1cH\xf4\t\x8d\x01\x00\x01\x01\x00\x10\xff\xff\xfe\xd4\x00\x00\x00\x00\xb2\x1a=\x0f"
Socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)                   
Socket.bind(('',udp_sport))
S = Socket.connect_ex(("10.146.144.51",1803))    
Socket.settimeout(10)        
sendp(pkt,socket=S)

我在scapy库中看到,在sendp中有一个使用套接字的选项。我怎么用这个来发送?请帮忙。你知道吗


Tags: 代码socket数据包scapyx00x01xffpkt
1条回答
网友
1楼 · 发布于 2024-10-01 19:30:36

可以使用StreamSocket作为套接字的包装器。见https://scapy.readthedocs.io/en/latest/layers/tcp.html?highlight=streamsocket#using-the-kernel-s-tcp-stack

就你而言:

ss=StreamSocket(s,Raw)
ss.send(...)

注意:在您的示例中,您使用的是sendp()。这意味着第2层数据包。这对您创建的第3层套接字不起作用:请确保您发送的数据包是L3。你知道吗

相关问题 更多 >

    热门问题