How to check if Internet is available using bash script

Do you want to wait for an internet availability before proceeding further such as send an email from command line only when internet is available.. In those cases, we have to go into infinite loop of checking whether we are really connected to network. Ubuntu has a utility called “fping” we comes handy for such use cases. [ fping – send ICMP ECHO_REQUEST packets to network hosts ]

$ sudo apt-get install fping
$ vim
while [ "$(fping | grep alive)" == "" ]
    echo "waiting for internet ..."
    sleep 3
echo "Internet is now online"

You can either use above code OR use below code,

echo "checking if network is available, if not we will wait..."
fping -l | read
echo "Internet is now online"

Now just run this script as,

$ bash

What is fping ?

fping is a program like ping which uses the Internet Control Message Protocol (ICMP) echo request to determine if a target host is responding. fping differs from ping in that you can specify any number of targets on the command line, or specify a file containing the lists of targets to ping. Instead of sending to one target until it times out or replies, fping will send out a ping packet and move on to the next target in a round-robin fashion. In the default mode, if a target replies, it is noted and removed from the list of targets to check; if a target does not respond within a certain time limit and/or retry limit it is designated as unreachable. fping also supports sending a specified number of pings to atarget, or looping indefinitely (as in ping ). Unlike ping, fping is meant to be used in scripts, so its output is designed to be easy to parse.The binary named fping6 is the same as fping, except that it uses IPv6 addresses instead of IPv4.


Subscribe with Valid Email Id to receive updates in Inbox. ( Secured by Google FeedBurner )


Leave a Comment

Android Android Applications Android Build system Android Commands Application Libraries Application Stack / User Interface Bash / Shell Scripts Bluetooth driver Cloud Technologies Commands and Packages Compilation Content Management System Core Kernel C Programs Development & Build Development, Debugging and Performance Tools Development Environment Setup Django & REST Api Errors & Failures Git Hardware Platforms HTML JAVA Programs Linux, OS Concepts and Networking Linux Device Drivers Linux Host, Ubuntu, SysAdmin Linux Kernel Linux Networking Middleware Libraries, HAL Multimedia Audio, Video, Images NDK / Middleware / HAL OS Concepts PHP Programming Languages Scripting and Automation Search Engine Optimisation ( SEO ) Social Media Source Code Management ( SCM ) System Administration, Security Testing and Debugging Uncategorized Web design and development Website Hosting Wordpress Yocto / Bitbake / Openembedded