The Story of the PING Program (1997)
ftp.arl.mil
ftp.arl.mil
Why is Linux ping this way? Is this a fundamental design flaw?
$ oping msn.com
PING msn.com (23.101.196.141) 56 bytes of data.
echo reply from msn.com (23.101.196.141): icmp_seq=1 timeout
echo reply from msn.com (23.101.196.141): icmp_seq=2 timeout
echo reply from msn.com (23.101.196.141): icmp_seq=3 timeout
Also, in standard ping, you can type Ctrl+\ (sends the QUIT signal) to get an update, e.g. $ ping msn.com
PING msn.com (23.101.196.141) 56(84) bytes of data.
<<< Ctrl+\ >>>
7/0 packets, 100% lossIf you can read the output, or just recognize the difference between successful and unsuccessful lines, it works just as well for this.
> Is this a fundamental design flaw?
It's handy UX, but not the fundamental purpose of ping.
# ping -f x.x.x.x
As superuser or su -c / sudo of course. You'll get a nice real time bar chart of packet loss. I use it all the time for (edit: local) network testing.http://en.wikipedia.org/wiki/Ping_flood
It's not even close to the most effective denial of service attack, but if I were to do that from my 100 Mbps Internet line I could overwhelm many company's Internet lines with a simple ping flood.
It's the only time I've ever seen my friend violent or aggressive. Upon find the switch he calmly unplugged everything, and then threw the switch at a concrete wall. I understood the sentiment.
ping mit.edu | sed -u 's/.*/ping/' | espeak ping mit.edu | sed -u 's/.*/ping pong/' | espeak
is even funnier... ping google.com | sed -l -e 's/.*/ping/' | while read line; do say $line; done
The `while read line ...` is required because the `say(1)` command will wait for an EOF when reading from a non-TTY... so it won't speak line by line.struct sockaddr whereto;/* Who to ping */