go-fastping

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

  • Owner: tatsushid/go-fastping
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

go-fastping

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

All original functions haven't been implemented yet.

GoDoc

Installation

Install and update 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])
if err != 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()
if err != nil {
	fmt.Println(err)
}

The example sends an ICMP packet and waits for a response. If it receives a
response, it calls the "receive" callback. After that, once MaxRTT time has
passed, it calls the "idle" callback. For more details,
refer to the godoc, and if you need more examples,
please see "cmd/ping/ping.go".

Caution

This package implements ICMP ping using both raw socket and UDP. If your program
uses this package in raw socket mode, it needs to be run as a root user.

License

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

Main metrics

Overview
Name With Ownertatsushid/go-fastping
Primary LanguageGo
Program languageGo (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2013-09-05 14:52:42
Pushed At2021-06-24 00:50:26
Last Commit At2016-01-08 10:53:29
Release Count0
用户参与
Stargazers Count578
Watchers Count18
Fork Count122
Commits Count54
Has Issues Enabled
Issues Count26
Issue Open Count20
Pull Requests Count0
Pull Requests Open Count5
Pull Requests Close Count14
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private