Skip to content

Latest commit

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

go-fastping

go-fastping is a Go language's ICMP ping library inspired by AnyEvent::FastPing Perl module to send ICMP ECHO REQUEST packets quickly. Original Perl module is available at http://search.cpan.org/~mlehmann/AnyEvent-FastPing-2.01/

It hasn't been fully implemented original functions yet.

GoDoc

Installation

Install and update this go package with go get -u github.com/tatsushid/go-fastping

Examples

Import this package and write

p:=fastping.NewPinger()
ra, err:=net.ResolveIPAddr("ip4:icmp", os.Args[1])
iferr!=nil {
fmt.Println(err)
os.Exit(1)
}
p.AddIPAddr(ra)
p.OnRecv=func(addr*net.IPAddr, rtt time.Duration) {
fmt.Printf("IP Addr: %s receive, RTT: %v\n", addr.String(), rtt)
}
p.OnIdle=func() {
fmt.Println("finish")
}
err=p.Run()
iferr!=nil {
fmt.Println(err)
}

It sends an ICMP packet and wait a response. If it receives a response, it calls "receive" callback. After that, MaxRTT time passed, it calls "idle" callback. For more detail, refer godoc and If you need more example, please see "cmd/ping/ping.go".

License

go-fastping is under MIT License. See the LICENSE file for details.

About

Go language ICMP ping library inspired by AnyEvent::FastPing Perl module

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages