如何在Windows上发送自定义TCP包?

时间:2012-03-01 11:42:14

标签: python sockets tcp winpcap

我想发送一个我定义IP地址,端口,数据,.etc的数据包,起初我想也许我可以在Windows上使用原始套接字,但谷歌搜索了一段时间后,我发现它似乎有ms从XP SP2禁用原始套接字(真的吗?),现在我不知道该怎么办。有人告诉我使用winPcap,然后我去了那个软件的主页,却发现该软件的最新版本于02年7月2日发布,这太旧了,我不知道它现在是否仍然有效。如果可能的话,我更喜欢使用Python来完成任务,但是使用python来实现raw socket似乎不方便,现在我不知道该怎么做。有没有人对它有好主意?任何帮助表示感谢。

3 个答案:

答案 0 :(得分:1)

scapy应该让你这样做。

答案 1 :(得分:0)

你有没有试过像

这样的东西
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW)
s.sendto('\xff'*6 + '\x00\x50\xe4\x59\xd9\x30'*16, ('168.1.0.0', 4444))

socket模块的文档读取(last example)“该示例需要管理员权限才能修改界面”,因此您可能需要查看如何执行此操作。

答案 2 :(得分:0)

当python以管理员身份运行时,这至少在Win7上起作用:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW)
s.sendto(b"\x00"*16, (192.168.0.255, 0)