Sockets 在Go中使用原始套接字实现TCP包嗅探器
我正在寻找一种方法,使用Go编程语言在接口上监听所有传入流量 我希望它与这个python类似:Sockets 在Go中使用原始套接字实现TCP包嗅探器,sockets,go,network-programming,packet-sniffers,sniffer,Sockets,Go,Network Programming,Packet Sniffers,Sniffer,我正在寻找一种方法,使用Go编程语言在接口上监听所有传入流量 我希望它与这个python类似: import socket, sys from struct import * s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) while True: packet = s.recvfrom(65565) 任何建议都很好。谢谢。您可以查看参考资料,尤其是Slawosz,这些都是很好的例子。谢谢然而
import socket, sys
from struct import *
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
while True:
packet = s.recvfrom(65565)
任何建议都很好。谢谢。您可以查看参考资料,尤其是Slawosz,这些都是很好的例子。谢谢然而,我正在寻找一些允许使用数据包中标识的dns查询来解析数据包的东西。我们有一个远程接口的点击,它将数据包推送到我的接口,我试图接受它们并将它们分开。我使用了Python Scapy,我们收到的数据包太多,Scapy无法处理。Go可以很好地处理原始套接字。应该能让你快速了解例子。哦如果您想从其wire格式解析DNS内容,您可能会发现这很有用——它提供了普通Go中的高级处理。您可能还想使用类似于
gopacket
的东西,它包装了由tcpdump
和Wireshark提供的解析库,但您必须记住,从Go调用C很慢--可能比执行系统调用慢,因此,如果性能至关重要,请避免使用包装的C库,并确保使用纯Go.Roger。感谢您的反馈和帮助。