ping with UDP protocol ๐
root@raspberrypi:~# ./udpping.py 44.55.66.77 4000
UDPping 44.55.66.77 via port 4000 with 64 bytes of payload
Reply from 44.55.66.77 seq=0 time=138.357 ms
Reply from 44.55.66.77 seq=1 time=128.062 ms
Request timed out
Reply from 44.55.66.77 seq=3 time=136.370 ms
Reply from 44.55.66.77 seq=4 time=140.743 ms
Request timed out
Reply from 44.55.66.77 seq=6 time=143.438 ms
Reply from 44.55.66.77 seq=7 time=142.684 ms
Reply from 44.55.66.77 seq=8 time=138.871 ms
Reply from 44.55.66.77 seq=9 time=138.990 ms
^C
--- ping statistics ---
10 packets transmitted, 8 received, 20.00% packet loss
rtt min/avg/max = 128.06/138.44/143.44 ms
Set up a udp echo server at the host you want to ping.
There are many ways of doing this, my favourite way is:
socat -v UDP-LISTEN:4000,fork PIPE
Now a echo server is listening at port 4000.
If you dont have socat, use apt install socat or yum install socat, you will get it.
Ping you server.
Assume 44.55.66.77 is the IP of your server.
./udpping.py 44.55.66.77 4000
Done!
Now UDPping will generate outputs as a normal ping, but the protocol used is UDP instead of ICMP.
$ ./udpping.py -h
usage: udpping.py [-h] [-l LEN] [-i INTERVAL] [-c COUNT] dest_ip dest_port
ping with UDP protocol
positional arguments:
dest_ip destination IP address(IPv4/IPv6)
dest_port destination port
options:
-h, --help show this help message and exit
-l LEN, --len LEN payload length, unit:byte, default is 64
-i INTERVAL, --interval INTERVAL
interval between each packet, unit: ms, default is 1000
-c COUNT, --count COUNT
number of packets, default is unlimited
examples:
./udpping.py 44.55.66.77 4000 -l 400 -i 2000
./udpping.py fe80::5400:ff:aabb:ccdd 4000
./udpping.py 44.55.66.77 4000 -l 400 -i 2000 -c 100')