Ping is a very useful command to use within scripts for checking the presence (or absence) of a live system on our network, or indeed on the Internet. However, there are subtle differences in the format of its report on different operating system flavors, so any code that you write that needs to analyse the results may need to be tuned when you re-host.
Here are some similar (but different!) ping responses, by way of example:
earth-wind-and-fire:~ grahamellis$ ping -q -c2 192.168.200.65
PING 192.168.200.65 (192.168.200.65): 56 data bytes
--- 192.168.200.65 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
earth-wind-and-fire:~ grahamellis$
|
-bash-3.2$ ping -q -c2 192.168.200.65
PING 192.168.200.65 (192.168.200.65) 56(84) bytes of data.
--- 192.168.200.65 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms
-bash-3.2$
|
wellcouk@tornado:~/public_html$ ping -q -c2 192.168.200.65
PING 192.168.200.65 (192.168.200.65): 56 octets data
--- 192.168.200.65 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
wellcouk@tornado:~/public_html$
|
Many people find our Python scripts
alive,
kicking,
fullrange and
fullandfast useful - both as demonstrations of threading in Python and for live system checking
but you do need to change the scripts if you use them to reflect the OS on which you're running!
The same need to tailor applies to Tcl / Expect scripts such as
our basic expect example, our Tcl /expect parallel ping examples - we have them already modified for
Caldera and
Red Hat. Finally, ours Tk example for
Linux may also need a little tailoring depending on your Linux flavor!
(written 2009-11-02, updated 2010-11-03)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y302 - Python - Threads - What why and how [903] Pieces of Python - (2006-10-23)
T212 - Tcl/Tk - Expect Processes [287] Checking that all our servers are up and accessible - (2005-04-22)
[675] Adding PHP tags to an old cgi program - (2006-04-08)
[1173] Cheat Sheet / Check list for Expect maintainers - (2007-05-02)
[1785] What is running on your network? (tcl and expect) - (2008-09-04)
[2474] Using Tcl and Expect to automate repetitive jobs - (2009-10-24)
[3448] Checking all the systems on a subnet, using Expect and Tk - (2011-09-18)
[4678] Expect with Ruby - a training example to get you started - (2016-05-18)
T211 - Tcl/Tk - What is Expect? Why use it? [286] Automating regular manual procedures - (2005-04-21)
[435] Expect for Windows - (2005-09-04)
[1174] Installing Tcl and Expect on Solaris 10 - a checklist - (2007-05-02)
[1409] What is Expect? - (2007-10-26)
[1411] Buffering of inputs to expect, and match order - (2007-10-27)
[1469] Curley brackets v double quotes - Tcl, Tk, Expect - (2007-12-12)
[1531] Expecting a item from a list of possibles - (2008-02-04)
[1602] Automating processes through Expect - (2008-04-05)
[3009] Expect in Perl - a short explanation and a practical example - (2010-10-22)
[3286] Should we cover expect and/or Tk on our public Tcl courses? - (2011-05-11)
[3572] Adding Expect on top of Tcl - what is it and where can I get a training course to learn about it? - (2012-01-08)
[4405] Backup procedures - via backup server - (2015-01-24)
A163 - Web Application Deployment - Network Configuration and Security [11] A bolt of lightning on Multicasting - (2004-08-11)
[37] Security and Safety - (2004-09-03)
[267] Searching security holes - (2005-04-04)
[332] Looking up IP addresses - (2005-06-01)
[506] What are DHCP and DNS? - (2005-11-27)
[511] Domain Forwarding - 2 ways of doing it - (2005-11-29)
[1073] Heartbeat script in Perl - (2007-02-09)
[1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
[1666] Slow boot and terminal start on Linux boxes - (2008-06-05)
[1712] As different as night and tyres - (2008-07-18)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2052] How was my web site compromised? - (2009-02-24)
[4134] Setting up your MacBook Air as a mobile broadband router - (2013-07-07)
Some other Articles
Melksham buses to/from Chippenham, Trowbridge, Bath, Devizes, LondonLua Classes - open enrolementRoot is root for a reason!Friendly Hotel in Melksham, near BathParallel Pinging, using Python Threads or Expect spawn listsA variable number of arguments in a PHP functionMelksham ForumSanta Special - Trowbridge and Melksham to SwindonHow do I set up a constant in Python?Finding text and what surrounds it - contextual grep