Categories: CentOSLinuxShell

How to find the geographical location of a Linux server using the terminal on CentOS 8

A public IP address is assigned to each server when it is connected to the Internet. This address can be assigned directly to a router that is used to send signals or traffic to the server.

This article shows how the IP address and geographical location of the remote Linux system can be determined using open APIs and how a bash script can be executed through the terminal. We have executed all commands and scripts on the CentOS 8 system, which are listed below:

Find the geographical location of a Linux server on CentOS 8

You need to run the various commands on your system to find your server’s geographic location. Login as root user on your CentOS 8 system and perform the steps as follows:

Open terminal

Open the terminal window through the shortcut method ‘Ctrl + Alt + t’ or Click on ‘Activities’ and launch the terminal by typing ‘terminal’ in the application search bar as follows:

Install curl and jq

To find the IP address and geographic location of a Linux server, you need to install Curl and Jq command-line tools that will be used to process the JSON data using geolocation APIs. For that purpose, you will execute the following command on the terminal:

$ sudo yum install curl jq

You will press ‘y’ and ‘Enter’ that will allow you to use additional space for installation.

After a while, you will see that curl and jq have been successfully installed on your system CentOS 8.

How to find the public IP address of a remote server?

Using curl command, you can get the public IP address of the server. The curl command is used to send an API request to the following URL ipinfo.io using the terminal as follows:

$ curl https://ipinfo.io/ip

How to get geographic location data from API?

Once the IP address of the server is retrieved, now you will send a request to ipvigilante.com API that will fetch the geographic location. For this purpose, use the following command in which you will replace the <your IP address> with the public IP address of the server:

$ curl https://ipvigilante.com/<Enter your IP address>

Get geographic location data using a bash script

You can automate the API process using the bash script method. To create a script, you need to create a text file in which you will paste the following script:

curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

Now, save the above script file with the name ‘getipgeoloc.sh’. You can also save with your desired name as per your requirements. Again, move to the terminal window and type the command to create an executable file as follows:

$ chmod +x getipgeoloc.sh

Now it’s time to run the above script file to display the Linux server’s IP geographic location using in the following command:

$ ./getipgeoloc.sh

After executing the above script, the city, country name will be displayed along with longitude and latitude coordinates.

You can run the above script without saving it in an executable script file. So, you will type the following command on the terminal:

$ curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

You will see that approximate coordinates with your geographical location will be displayed on the terminal as follows:

Conclusion

In this article, you have explored how to find the geographical location of a public IP remote Linux server. Furthermore, you learned how to install and use curl, jq tools on your CentOS 8, how to use these to find the geographical location of your remote server. In case of any queries, please do comments in the comment box.

Karim Buzdar

About the Author: Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. You can reach Karim on LinkedIn

Recent Posts

How to Install Magento 2 on AlmaLinux

Magento is a free and open-source e-commerce platform written in PHP. It is simple, easy…

1 year ago

How to Install ISPConfig Hosting Control Panel with Apache Web Server on Ubuntu 24.04

ISPConfig is an open-source control panel that allows users to manage multiple servers from a…

1 year ago

How to Test your Email Server (SMTP) Using the Telnet Command

As a Linux administrator, you may find it necessary to troubleshoot or test your Simple…

1 year ago

Managing Network Interfaces and Settings on Ubuntu 24.04 with nmcli

Ubuntu 24.04, like many modern Linux distributions, relies on the NetworkManager for managing network connections.…

2 years ago

Using Restic Backup on Ubuntu 24.04

Restic is a modern, open-source backup program designed for efficiency, security, and simplicity. It enables…

2 years ago

Installing phpMyAdmin on Rocky Linux 9 and Securing it with Let’s Encrypt SSL

phpMyAdmin is a popular free tool written in PHP intended to administer MySQL and MariaDB…

2 years ago