我有一个关于使用golang嗅探tcp数据包的问题。我们编写了一个小工具,可以捕获来自光纤分接头的所有传入TCP数据包。
当前的实现在Linux下使用libpcap包装器。我们需要将此工具移植到Windows。当然,目前尚不可能。
所以我的问题是,是否存在用于嗅探数据包的跨平台解决方案?我们只需要TCP数据包,IP标头,没有以太网数据,并且不需要libpcap的所有功能。
如果没有跨平台的解决方案,那么两个Code的实现也是可以的。我知道人们可以在Linux下使用原始套接字(并且在Windows下有一些限制)。Golang是否支持原始套接字,是否有使用套接字嗅探数据包的示例实现?
坦克!:-)
您应该能够使用来自go.net的ipv4软件包。
程序包ipv4为Internet协议版本4实现IP级套接字选项。
该ipv4.RawConn类型和它的相关方法应跨平台工作。
RawConn代表使用IPv4传输的分组网络终结点。它用于控制多个IP级套接字选项,包括IPv4标头操作。它还提供了特定于IPv4和直接处理IPv4数据报的高层协议(例如OSPF,GRE)的基于数据报的网络I / O方法。
ipv6也有一个等效的软件包。