icmp

package module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2020 License: MIT Imports: 10 Imported by: 0

README

icmp

Golang native icmp library

Documentation

Index

Constants

View Source
const (
	// Ethernet packet types - ETHER_TYPE
	ETH_P_IP    = 0x800  // IP
	ETH_P_8021Q = 0x8100 // VLAN

	// ICMP Packet types
	ICMPTypeEchoReply   = 0
	ICMPTypeEchoRequest = 8
)

Variables

View Source
var LogAll bool

LogAll packets turn on logging if desirable

Functions

This section is empty.

Types

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

Handler maintains the underlying socket connection

func New

func New(nic string) (h *Handler, err error)

New start the ICMP listening service for the nic and return a handle to access ICMP functionality.

func (*Handler) Close

func (h *Handler) Close()

Close the underlaying socket

func (*Handler) Ping

func (h *Handler) Ping(src net.IP, dst net.IP, timeout time.Duration) (err error)

Ping send a ping request and wait for a reply

func (*Handler) SendICMPEcho

func (h *Handler) SendICMPEcho(src net.IP, dst net.IP, id uint16, seq uint16) error

SendICMPEcho transmit an icmp echo request Do not wait for response

type RawEthPacket

type RawEthPacket []byte

RawEthPacket provide access to ethernet fields without copying the structure see: https://medium.com/@mdlayher/network-protocol-breakdown-ethernet-and-go-de985d726cc1

func (RawEthPacket) EtherType

func (p RawEthPacket) EtherType() uint16

func (RawEthPacket) IsValid

func (p RawEthPacket) IsValid() bool

func (RawEthPacket) Payload

func (p RawEthPacket) Payload() []byte

type RawICMPPacket

type RawICMPPacket []byte

func (RawICMPPacket) Checksum

func (p RawICMPPacket) Checksum() int

func (RawICMPPacket) Code

func (p RawICMPPacket) Code() int

func (RawICMPPacket) EchoData

func (p RawICMPPacket) EchoData() string

func (RawICMPPacket) EchoID

func (p RawICMPPacket) EchoID() uint16

func (RawICMPPacket) EchoSeq

func (p RawICMPPacket) EchoSeq() uint16

func (RawICMPPacket) Payload

func (p RawICMPPacket) Payload() []byte

func (RawICMPPacket) RestOfHeader

func (p RawICMPPacket) RestOfHeader() []byte

func (RawICMPPacket) String

func (p RawICMPPacket) String() string

func (RawICMPPacket) Type

func (p RawICMPPacket) Type() uint8

type RawIPPacket

type RawIPPacket []byte

RawIPPacket provide access to IP fields without copying data. see: ipv4.ParseHeader in https://raw.githubusercontent.com/golang/net/master/ipv4/header.go

func (RawIPPacket) Checksum

func (p RawIPPacket) Checksum() int

func (RawIPPacket) Dst

func (p RawIPPacket) Dst() net.IP

func (RawIPPacket) ID

func (p RawIPPacket) ID() int

func (RawIPPacket) IHL

func (p RawIPPacket) IHL() int

func (RawIPPacket) IsValid

func (p RawIPPacket) IsValid() bool

func (RawIPPacket) Payload

func (p RawIPPacket) Payload() []byte

func (RawIPPacket) Protocol

func (p RawIPPacket) Protocol() int

func (RawIPPacket) Src

func (p RawIPPacket) Src() net.IP

func (RawIPPacket) String

func (p RawIPPacket) String() string

func (RawIPPacket) TOS

func (p RawIPPacket) TOS() int

func (RawIPPacket) TTL

func (p RawIPPacket) TTL() int

func (RawIPPacket) TotalLen

func (p RawIPPacket) TotalLen() int

func (RawIPPacket) Version

func (p RawIPPacket) Version() int

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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