Skip to content
ping with UDP packets πŸ› 
Python
Branch: master
Clone or download

Latest commit

wangyu- Merge pull request #8 from gnattu/master
Resolve hostname before storing, fixes #2, fixes #6
Latest commit 12464c5 Sep 15, 2019

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Initial commit May 18, 2018
README.md add sys.stdout.flush() and fix typo May 3, 2019
udpping.py Resolve hostname before storing, fixes #2, fixes #6 Aug 30, 2019

README.md

UDPping

ping with UDP protocol πŸ› 

How it looks like

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

Getting Started

Step 1

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.

Note

If you dont have socat, use apt install socat or yum install socat, you will get it.

Step 2

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.

Advanced Usage

root@raspberrypi:~# ./udpping.py
 usage:
   this_program <dest_ip> <dest_port>
   this_program <dest_ip> <dest_port> "<options>" 

 options:
   LEN         the length of payload, unit:byte
   INTERVAL    the seconds waited between sending each packet, as well as the timeout for reply packet, unit: ms

 examples:
   ./udpping.py 44.55.66.77 4000
   ./udpping.py 44.55.66.77 4000 "LEN=400;INTERVAL=2000"
   ./udpping.py fe80::5400:ff:aabb:ccdd 4000
   
You can’t perform that action at this time.