All Projects β†’ opsnull β†’ kping

opsnull / kping

Licence: Apache-2.0 license
Large Scale, High Performance flood ping.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to kping

gen icmp
ICMP protocol implementation for Erlang without NIFs
Stars: ✭ 26 (+62.5%)
Mutual labels:  ping, icmp
pexpo
πŸ’» Terminal sending ping tool written in Go.
Stars: ✭ 89 (+456.25%)
Mutual labels:  ping, icmp
BackToTheFuture
Respond to pings before they even arrive at the server
Stars: ✭ 18 (+12.5%)
Mutual labels:  ping, icmp
ICMP-server
simple web app that use icmp protocol to check some devices if there are up or not
Stars: ✭ 16 (+0%)
Mutual labels:  ping, icmp
Networkmanager
A powerful tool for managing networks and troubleshoot network problems!
Stars: ✭ 1,296 (+8000%)
Mutual labels:  ping, icmp
icmpmon
A simple ICMP monitor with web interface.
Stars: ✭ 33 (+106.25%)
Mutual labels:  ping, icmp
ddos
Simple dos attack utility
Stars: ✭ 36 (+125%)
Mutual labels:  ping, icmp
pingo
Ping library for Golang with multi-host support
Stars: ✭ 36 (+125%)
Mutual labels:  ping, icmp
Icmplib
Easily forge ICMP packets and make your own ping and traceroute.
Stars: ✭ 58 (+262.5%)
Mutual labels:  ping, icmp
Fping
High performance ping tool
Stars: ✭ 652 (+3975%)
Mutual labels:  ping, icmp
ComputerNetworks-unipd2018
Tips and resources to easily pass the "Computer Networks" practical exam ("Reti di calcolatori") in Padua
Stars: ✭ 21 (+31.25%)
Mutual labels:  ping, icmp
Ping exporter
Prometheus exporter for ICMP echo requests using https://github.com/digineo/go-ping
Stars: ✭ 134 (+737.5%)
Mutual labels:  ping, icmp
Pingtop
πŸ“Ping multiple servers and show results in a top-like terminal UI.
Stars: ✭ 328 (+1950%)
Mutual labels:  ping, icmp
Pingtunnel
ping tunnel is a tool that advertises tcp/udp/socks5 traffic as icmp traffic for forwarding.
Stars: ✭ 1,904 (+11800%)
Mutual labels:  ping, icmp
Go Ping
A simple ping library using ICMP echo requests.
Stars: ✭ 158 (+887.5%)
Mutual labels:  ping, icmp
pycameresp
Motion detection with image notification for Esp32CAM and Esp32 flasher with GUI based on esptool.py.
Stars: ✭ 40 (+150%)
Mutual labels:  ping
How-to-Deconstruct-Ping-with-C-and-NodeJS
πŸ™ˆ Simple examples that show how to work with binary headers in C and NodeJS
Stars: ✭ 51 (+218.75%)
Mutual labels:  ping
sx
πŸ–– Fast, modern, easy-to-use network scanner
Stars: ✭ 1,267 (+7818.75%)
Mutual labels:  icmp
spp
A simple and powerful proxy
Stars: ✭ 575 (+3493.75%)
Mutual labels:  icmp
lapdog
Take actions when specific devices appear/disappear from your LAN
Stars: ✭ 17 (+6.25%)
Mutual labels:  ping

kping

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 on godoc

Warning: WORKING IN PROGRESS

Example (using af_packet recv mode)

The simplest example:

// Create a new Pinger
pinger, err := NewPinger("10.0.0.1", 100, 10, 1*time.Minute, 100*time.Millisecond)
if err != nil {
    logger.Fatalln(err)
}

// Add IP addresses to Pinger
if err := pinger.AddIPs([]string{"114.114.114.114", "8.8.8.8"}); err != nil {
    logger.Fatalln(err)
}

// Run !
statistics, err : = pinger.Run()
if err != nil {
    logger.Fatalln(err)
}

// Print result
for ip, statistic := range statistics {
    fmt.Printf("%s: %v\n", ip, statistic)
}

You can customize and optimize the send & receive options based on your system:

// Create a new Pinger
pinger, err := NewPinger("10.0.0.1", 100, 10, 1*time.Minute, 100*time.Millisecond)
if err != nil {
    logger.Fatalln(err)
}

// Set send options
if sendOpts, err := SendOptions(1024, 10*1024*1024, 30, 100*time.Second, 20*time.Millsecond); err != nil{
    logger.Fatalln(err)
} else if err := pinger.SetOptions(sendOpts); err != nil {
    logger.Fatalln(err)
}

// Set Recv mode: afpacket | batch
if err := pinger.SetRecvMode("afpacket"); err != nil{
    logger.Fatalln(err)
}

// Set afpacket recv mode options
if recvOpts, err := AfPacketRecvOptions(2, 128, "eth1", 100*time.Millsecond); err != nil{
    logger.Fatalln(err)
} else if err := pinger.SetOptions(recvOpts); err != nil {
    logger.Fatalln(err)
}

// Add IP addresses to Pinger
if err := pinger.AddIPs([]string{"114.114.114.114", "8.8.8.8"}); err != nil {
    logger.Fatalln(err)
}

// Run !
statistics, err : = pinger.Run()
if err != nil {
    logger.Fatalln(err)
}

// Print result
for ip, statistic := range statistics {
    fmt.Printf("%s: %v\n", ip, statistic)
}

License

Copyright 2017 zhangjun ([email protected])

Apache License 2.0,LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].