How to check the internet connection in Python?
Nowadays, the Internet is an essential part of our day-to-day lives. If the server is down even for a minute, then we check the Internet connectivity in various ways. Can Python help us check the connectivity? Yes, we can use Python language for checking the internet connection. In this tutorial, we will find out whether the computer is connected to the internet or not.
Checking Internet Connection in Python
Below we have described two methods of checking the internet connection in Python.
- using urllib package
- using an IP address/socket package:
By using an urllib package
To fetch URLs, we use urllib.request module in Python. This can fetch URLs using a variety of different protocols.
One of the functions present in the package are urllib.request.urlopen().
Syntax of urllib.request.urlopen() is–
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
Here, we will specify only the URL. And the rest of the parameters to their default values.
Let’s see how to use it for checking the internet-
import urllib.request def connect(host='http://google.com'): try: urllib.request.urlopen(host) #Python 3.x return True except: return False # test print( ‘connected’ if connect() else ‘no internet!’ )
Initially, we import the urllib package. Then we used a function ‘connected()‘, whose parameter is the URL. It is unnecessary to use the URL as ’http://google.com’, it can be any URL. Inside the try block, we implemented the above method to check internet connectivity. As you can observe, instead of passing the URL, we have kept host over there which has the value of URL.
If the Internet connection is present, then it returns True else the control goes to except block and it returns False.
With the help of the print statement, if the returned value is true then ‘Connected’ else ‘no internet!’ is printed.
Let’s see the above program by not giving any parameter to the function-
import urllib.request def connect(): try: urllib.request.urlopen('http://google.com') #Python 3.x return True except: return False print( 'connected' if connect() else 'no internet!' )
Note: In Python 2.x, we replace urllib.request.urlopen() by urllib.urlopen() .
By using an IP address/By using socket package:
Here, we will use an indirect way when compared to the previous method.
127.0.0.1 is a special-purpose IPv4 address also known as localhost. All computers use this address as their own, however, it will not allow them to communicate with different devices as a real IP address does. The computer you’re on only uses the loopback address.
We import socket to check the connectivity. Socket programming is a method of connecting 2 nodes on a network to speak with one another.
You can find the IP using socket.gethostbyname() method. Below is the program to check the internet connection:
import socket IPaddress=socket.gethostbyname(socket.gethostname()) if IPaddress=="127.0.0.1": print("No internet, your localhost is "+ IPaddress) else: print("Connected, with the IP address: "+ IPaddress )
No internet, your localhost is 127.0.0.1
Initially, we import the socket package. Then fetch the IP address using socket.gethostbyname() method. When the Internet connection is absent, then it fetches the IP address as 127.0.0.1. Now, If-Else conditional statement is used to check whether or not the system is connected to the internet.
The above specified are the two ways to check the internet connection.