How to check internet access using bash script in linux?

shell script to check network connectivity
how to check internet connection in linux command
linux script to check server connectivity
how to check internet connection in rhel 7
how to check url connectivity in linux
linux test network connection
bash scripts to scan and monitor network
check internet access with curl

In my school, the internet is not available(every night after 23:0 the school will kill the internet, to put us in bed >..<), then the ping will never stop, though I have used the parameter ping -w1 ....

That is, when I use: ping -q -w1 -c1 to check if the internet is up/down, It will be there without any output and doesn't exit, just like I am using a single cat.

Can you understand my question??? I don't know why it's like this, But I think the problem is related to the school-internet-service. Any suggestion? (I think wget may be a good alternative, but how to use?)

Using wget:


wget -q --tries=10 --timeout=20 --spider
if [[ $? -eq 0 ]]; then
        echo "Online"
        echo "Offline"

Shell Scripting: Proper way to check for internet connectivity?, Testing IPv4 connectivity. If your network lets pings through, try pinging (a server run by Google). if ping -q -c 1 -W 1 >/dev/null; then echo "IPv4 is� On Linux, the desktop environment automatically connects to the internet. It can connect to WiFi or Ethernet network. This is great, but if you need to accessing the internet via the command line, it doesn’t let you. That’s why in this article, we’re going to go over how to connect to the internet from The command line in Linux.

If the school actually turns off their router instead of redirecting all traffic to a "why aren't you in bed" page, then there's no need to download an entire web page or send HTTP headers. All you have to do is just make a connection and check if someone's listening.

nc -z 53

This will output "Connection to port 53 [tcp/domain] succeeded!" and return a value of 0 if someone's listening.

If you want to use it in a shell script:

nc -z 53  >/dev/null 2>&1
if [ $online -eq 0 ]; then
    echo "Online"
    echo "Offline"

9 commands to check if connected to internet with shell script , Most of the users all over the world make use of Google's Index Page to check whether their Internet connection is working or not. Many times it� If you want to check your internet speed using the Linux command Line, here are some utilities which can help you out. These tools use the nearest servers listed on to test the


TIMESTAMP=`date +%s`
while [ 1 ]
    ping -c 1 -W 0.7 > /dev/null 2>&1
    if [ $? -eq 0 ] ; then
        if [ "$INTERNET_STATUS" != "UP" ]; then
            echo "UP   `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
        if [ "$INTERNET_STATUS" = "UP" ]; then
            echo "DOWN `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
    sleep 1

the output will produce smth like:

bash-3.2$ ./
UP   2016-05-10T23:23:06BST 4
DOWN 2016-05-10T23:23:25BST 19
UP   2016-05-10T23:23:32BST 7

the number in the end of a line shows duration of previous state, i.e. 19 up, 7 secs down

A Simple BASH Script to Test Your Internet Connectivity, Is there an easy way to check Internet connectivity from console? I am trying to play around in a shell script. One idea I seem is to wget --spider� How do I check network adapter status in Linux? Linux comes with various command line utilities to dig information about network adapters such as Ethernet, WiFi and other installed in your system. This page shows how to find network adapter status in Linux using bash or any other modern shell.

Use the timeout option -t:

ping -q -t 5 -w1 -c1 t

command line, In fact you can use this as a basic test to check for internet connectivity. Shell script named as below : #!/bin/sh # Demonstrated for� Hello all, Recently took a dive into Unix using Fedora 12 atm. I have cable modem with DHCP and a linksys 8 port router. With windows I was able to simple use the uplink port and plug each computer into the switch and use the internet connection.

Install fping: > less problem then ping.

fping | grep alive

to use for example like:


itest=$(fping | grep alive)

while [ "$itest" == "" ] 
        sleep 5
        itest=$(fping | grep alive)
echo now online

A Simple Linux Shell Script To Test Internet Connectivity, Monitor Network Connectivity using Bash Script The Default behaviour of ping in Linux is to send icmp echo packet indefinitely, and test it Check a Website Response Time from the Linux Command Line Tags access-control anonymity ansible apache archive artifactory bash boot cisco cmd command-line curl dns docker encryption ftp git java jenkins kubernetes linux mail mongodb monitoring mount mysql network nmap openssl password pdf performance powershell prometheus proxy python

Monitor Network Connectivity using Bash Script, This works on both MacOSX and Linux: #!/bin/bash ping -q -w1 -c1 The OP asks how he/she can test a connection with the world. This bash script continuously check for Internet and make a beep sound when the Internet is available. Each script starts with a “shebang” and the path to the shell that you want the script to use, like so: #!/bin/bash. The “#!” combo is called a shebang by most Unix geeks. This is used by the shell to decide which interpreter to run the rest of the script, and ignored by the shell that actually runs the script. Confused?

How to test an Internet connection with bash? - bash - iOS, Shell script to check whether a server is reachable?, You can use ping -c4 Shell Scripting: Proper way to check for internet connectivity?, Testing IPv4 Linux Commands to Check the Network. ping : Checks network connectivity. ifconfig� An IP is short for Internet Protocol. It is used to identify computers or mobile devices on the Internet. Each device connected to the Internet has an IP address. IP address can be used to personalize information. Use dig command for determining my public IP address: Open the Terminal application.

Bash scripts to scan and monitor network, Internet access in Linux how to access beam internet in linux (wired) Often, when you don't have any information provided by your internet provider, it means that the computer retrieves the ip addresses using a DHCP client. If this is true, you can try to get the ip addresses by typing: dhclient eth0 or dhcpcd eth0 This solution supposes that your internet provider has given you an ip address

  • this can help…
  • It works well. Thank you very much! My old version lacks a --tries, thus it doesn't work.
  • Personally, I enhance this pattern by making this wget -q --tries=10 --timeout=20 -O - > /dev/null. That throws away the output, which means that files aren't left lying around, and there aren't any problems with write permissions.
  • You really should use --spider option as it will send a http HEAD request as opposed to a http GET request. Now, in this case you're checking against which is a pretty light weight page so it may be ok as it is. But as a general rule you should use a HEAD request if you just want to check if something is available without actually downloading it. I've added to the answer accordingly.
  • This is the fastest approach, it pings the dns server instead of getting google's website data. thumbs up.
  • might be good to use a timeout here nc -z -w 5 53 >/dev/null 2>&1
  • Welcome to Stack Overflow! While this code may answer the question, it would be better to include some context, explaining how it works and when to use it. Code-only answers are not useful in the long run.
  • Had lots of ups and downs in a few minutes. While DropBox was online and surfing the web was possible... See where they mention nc would be better to use than ping as quite a few hosters disable ICMP as well.
  • I fail to see how I would get the duration with the code above. I tried it and the 'duration' for each line grew monotonically. Doesn't TIMESTAMP have to be reset each time through the loop?
  • one problem with this solution is, that some networks might block outgoing pings (my uni had a famous record for doing so). it doesn't seem the be the case with the OP though.
  • @umlaeute, in that case you may use wget or even (better & simpler) curl
  • fping would need to be installed before running the example.