- Notifications
You must be signed in to change notification settings - Fork7
Large Scale, High Performance flood ping.
License
NotificationsYou must be signed in to change notification settings
opsnull/kping
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Package kping implements large scale & high performance ICMP flood ping.
It can send up to 1024 ICMP packets in one system call (sendmmsg), and provides two methods for receiving packets quickly: batch, afpacket.
See API document ongodoc
Warning:WORKING IN PROGRESS
The simplest example:
// Create a new Pingerpinger,err:=NewPinger("10.0.0.1",100,10,1*time.Minute,100*time.Millisecond)iferr!=nil {logger.Fatalln(err)}// Add IP addresses to Pingeriferr:=pinger.AddIPs([]string{"114.114.114.114","8.8.8.8"});err!=nil {logger.Fatalln(err)}// Run !statistics,err :=pinger.Run()iferr!=nil {logger.Fatalln(err)}// Print resultforip,statistic:=rangestatistics {fmt.Printf("%s: %v\n",ip,statistic)}
You can customize and optimize the send & receive options based on your system:
// Create a new Pingerpinger,err:=NewPinger("10.0.0.1",100,10,1*time.Minute,100*time.Millisecond)iferr!=nil {logger.Fatalln(err)}// Set send optionsifsendOpts,err:=SendOptions(1024,10*1024*1024,30,100*time.Second,20*time.Millsecond);err!=nil{logger.Fatalln(err)}elseiferr:=pinger.SetOptions(sendOpts);err!=nil {logger.Fatalln(err)}// Set Recv mode: afpacket | batchiferr:=pinger.SetRecvMode("afpacket");err!=nil{logger.Fatalln(err)}// Set afpacket recv mode optionsifrecvOpts,err:=AfPacketRecvOptions(2,128,"eth1",100*time.Millsecond);err!=nil{logger.Fatalln(err)}elseiferr:=pinger.SetOptions(recvOpts);err!=nil {logger.Fatalln(err)}// Add IP addresses to Pingeriferr:=pinger.AddIPs([]string{"114.114.114.114","8.8.8.8"});err!=nil {logger.Fatalln(err)}// Run !statistics,err :=pinger.Run()iferr!=nil {logger.Fatalln(err)}// Print resultforip,statistic:=rangestatistics {fmt.Printf("%s: %v\n",ip,statistic)}
Copyright 2017 zhangjun (geekard@qq.com)
Apache License 2.0,LICENSE.