internal

package
v1.6.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2026 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListenPacket added in v1.5.0

func ListenPacket(network string, laddr string) (net.PacketConn, error)

Types

type ICMPSpec added in v1.5.0

type ICMPSpec struct {
	IPVersion    int
	ICMPMode     int
	EchoID       int
	SrcIP        net.IP
	DstIP        net.IP
	SourceDevice string
	// contains filtered or unexported fields
}

func NewICMPSpec added in v1.5.0

func NewICMPSpec(IPVersion, ICMPMode, echoID int, srcIP, dstIP net.IP) *ICMPSpec

func (*ICMPSpec) Close added in v1.5.0

func (s *ICMPSpec) Close()

func (*ICMPSpec) InitICMP added in v1.5.0

func (s *ICMPSpec) InitICMP()

func (*ICMPSpec) ListenICMP added in v1.5.0

func (s *ICMPSpec) ListenICMP(ctx context.Context, ready chan struct{}, onICMP func(msg ReceivedMessage, finish time.Time, seq int))

func (*ICMPSpec) SendICMP added in v1.5.0

func (s *ICMPSpec) SendICMP(ctx context.Context, ipHdr gopacket.NetworkLayer, icmpHdr, icmpEcho gopacket.SerializableLayer, payload []byte) (time.Time, error)

type PacketListener added in v1.5.0

type PacketListener struct {
	Conn     net.PacketConn
	Messages <-chan ReceivedMessage
	// contains filtered or unexported fields
}

PacketListener 负责监听网络数据包并通过通道传递接收到的消息 对外暴露只读的 Messages,避免外部代码误写

func NewPacketListener added in v1.5.0

func NewPacketListener(conn net.PacketConn) *PacketListener

NewPacketListener 创建一个新的数据包监听器 conn: 用于接收数据包的连接 返回初始化好的 PacketListener 实例

func (*PacketListener) Start added in v1.5.0

func (l *PacketListener) Start(ctx context.Context)

type ReceivedMessage added in v1.5.0

type ReceivedMessage struct {
	Peer net.Addr
	Msg  []byte
	Err  error
}

type TCPSpec added in v1.5.0

type TCPSpec struct {
	IPVersion    int
	ICMPMode     int
	SrcIP        net.IP
	DstIP        net.IP
	DstPort      int
	PktSize      int
	SourceDevice string
	// contains filtered or unexported fields
}

func NewTCPSpec added in v1.5.0

func NewTCPSpec(IPVersion, ICMPMode int, srcIP, dstIP net.IP, dstPort int, pktSize int) *TCPSpec

func (*TCPSpec) Close added in v1.5.0

func (s *TCPSpec) Close()

func (*TCPSpec) InitICMP added in v1.5.0

func (s *TCPSpec) InitICMP()

func (*TCPSpec) InitTCP added in v1.5.0

func (s *TCPSpec) InitTCP()

func (*TCPSpec) ListenICMP added in v1.5.0

func (s *TCPSpec) ListenICMP(ctx context.Context, ready chan struct{}, onICMP func(msg ReceivedMessage, finish time.Time, data []byte))

func (*TCPSpec) ListenTCP added in v1.5.0

func (s *TCPSpec) ListenTCP(ctx context.Context, ready chan struct{}, onTCP func(srcPort, seq, ack int, peer net.Addr, finish time.Time))

func (*TCPSpec) SendTCP added in v1.5.0

func (s *TCPSpec) SendTCP(ctx context.Context, ipHdr gopacket.NetworkLayer, tcpHdr *layers.TCP, payload []byte) (time.Time, error)

type UDPSpec added in v1.5.0

type UDPSpec struct {
	IPVersion    int
	ICMPMode     int
	SrcIP        net.IP
	DstIP        net.IP
	DstPort      int
	SourceDevice string
	// contains filtered or unexported fields
}

func NewUDPSpec added in v1.5.0

func NewUDPSpec(IPVersion, ICMPMode int, srcIP, dstIP net.IP, dstPort int) *UDPSpec

func (*UDPSpec) Close added in v1.5.0

func (s *UDPSpec) Close()

func (*UDPSpec) InitICMP added in v1.5.0

func (s *UDPSpec) InitICMP()

func (*UDPSpec) InitUDP added in v1.5.0

func (s *UDPSpec) InitUDP()

func (*UDPSpec) ListenICMP added in v1.5.0

func (s *UDPSpec) ListenICMP(ctx context.Context, ready chan struct{}, onICMP func(msg ReceivedMessage, finish time.Time, data []byte))

func (*UDPSpec) ListenOut added in v1.5.0

func (s *UDPSpec) ListenOut(_ context.Context, _ chan struct{}, _ func(srcPort, seq, ttl int, start time.Time))

func (*UDPSpec) SendUDP added in v1.5.0

func (s *UDPSpec) SendUDP(ctx context.Context, ipHdr ipLayer, udpHdr *layers.UDP, payload []byte) (time.Time, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL