在测试某些网络设备驱动程序接收功能时,我需要在线发送特殊数据包。我知道我需要打开一个原始套接字并将字节推出。是否有一些众所周知的示例(C、perl 等)代码已经可以在这个级别上玩了?
(稍后添加)我更喜欢非平台特定的答案,它们对每个人都是最有用的。
在测试某些网络设备驱动程序接收功能时,我需要在线发送特殊数据包。我知道我需要打开一个原始套接字并将字节推出。是否有一些众所周知的示例(C、perl 等)代码已经可以在这个级别上玩了?
(稍后添加)我更喜欢非平台特定的答案,它们对每个人都是最有用的。
查看packet的文档。基本上,您使用 SOCK_RAW 或 SOCK_DGRAM 创建一个套接字,然后使用普通套接字 i/o 写入套接字。但是,您发送的数据将直接放在行上,而不是自动获取大多数网络互操作所需的标头。
http://www.codeproject.com/KB/IP/sendrawpacket.aspx
已经有一个现有的项目可以帮助您解决这个问题。
在我看来,您正在寻找一种工具来生成自己的数据包,Scapy 是安全行业中经常使用的工具(例如 pentesters)。
我想不出任何例子。但是您应该能够为您喜欢的任何 IP 地址打开一个 UDP 套接字并开始向其写入数据。确保它的 UDP 或这将不起作用。
我发现Security-Freak有一个很好的 C 示例,只需稍作修改即可获得灵活性。我希望有更多其他语言的答案。