go-fastping

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

  • 所有者: tatsushid/go-fastping
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

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.

主要指标

概览
名称与所有者tatsushid/go-fastping
主编程语言Go
编程语言Go (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2013-09-05 14:52:42
推送于2021-06-24 00:50:26
最后一次提交2016-01-08 10:53:29
发布数0
用户参与
星数578
关注者数18
派生数122
提交数54
已启用问题?
问题数26
打开的问题数20
拉请求数0
打开的拉请求数5
关闭的拉请求数14
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?