我正在尝试通过创建套接字来通过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
中使用Socket。我该如何使用它发送?请帮忙。
答案 0 :(得分:0)
您可以将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。