From 85b47b7a02825eae7c75a4ab340ef381e8a9c4e8 Mon Sep 17 00:00:00 2001 From: Tatsushi Demachi Date: Fri, 6 Sep 2013 00:35:58 +0900 Subject: [PATCH] Write README.md --- README.md | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e2e455c..1fb02fc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,45 @@ go-fastping =========== -go-fastping is a Go language port of AnyEvent::FastPing Perl module to send ICMP ECHO REQUEST packets quickly +go-fastping is a Go language port of Marc Lehmann's 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 and only for IPv4 now. + +## Installation + +Install and update this go package with `go get -u github.com/tatsushid/go-fastping` + +## Examples + +Import this package and write + +```go +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.AddHandler("receive", func(addr *net.IPAddr, rtt time.Duration) { + fmt.Printf("IP Addr: %s receive, RTT: %v\n", addr.String(), rtt) +}) +p.AddHandler("idle", func() { + fmt.Println("finish") +}) +p.Run() +``` + +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][godoc] and If you need more example, +please see "cmd/ping/ping.go". + +## License +go-fastping is under MIT License. See the [LICENSE][license] file for details. + +[godoc]: http://godoc.org/github.com/tatsushid/go-fastping +[license]: https://github.com/tatsushid/go-fastping/blob/master/LICENSE