gpt4 book ai didi

networking - Golang 中的原始套接字嗅探

转载 作者:IT老高 更新时间:2023-10-28 13:07:20 26 4
gpt4 key购买 nike

我有一个关于使用 golang 嗅探 tcp 数据包的问题。我们编写了一个小工具,它可以捕获来自光纤分接头的所有传入 TCP 数据包。

当前的实现在 Linux 下使用 libpcap 包装器。我们需要将此工具移植到 Windows。当然,目前是不可能的。

所以我的问题是,是否有用于嗅探数据包的跨平台解决方案?我们只需要 TCP 数据包、IP header ,不需要以太网数据,也不需要 libpcap 的所有功能。

如果没有跨平台解决方案,两个Code实现也可以。我知道可以在 Linux 下使用原始套接字(在 Windows 下有一些限制)。 Golang 是否支持原始套接字,是否有使用套接字嗅探数据包的示例实现?

坦克!! :-)

最佳答案

您应该可以使用 ipv4 package来自 go.net .

Package ipv4 implements IP-level socket options for the Internet Protocol version 4.

ipv4.RawConn类型及其关联的方法应该跨平台工作。

A RawConn represents a packet network endpoint that uses the IPv4 transport. It is used to control several IP-level socket options including IPv4 header manipulation. It also provides datagram based network I/O methods specific to the IPv4 and higher layer protocols that handle IPv4 datagram directly such as OSPF, GRE.

ipv6 还有一个等效的包.

关于networking - Golang 中的原始套接字嗅探,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com