网站搜索

如何在终端中查找 Linux 服务器地理位置


在本文中,我们将向您展示如何使用开放的 API 和简单的 bash 脚本从命令行查找远程 Linux 系统的 IP 地址地理位置。

在互联网上,每台服务器都有一个面向公众的 IP 地址,该地址直接分配给服务器或通过将网络流量发送到该服务器的路由器分配。

IP 地址提供了一种简单的方法来跟踪服务器在世界上的位置,方法是使用 ipinfo.ioipvigilante.com 提供的两个有用的 API 来获取与服务器连接的城市国家

安装 Curl 和 jq

为了获取服务器的IP地址地理位置,我们需要安装curl命令行下载器和jq命令行工具来处理来自地理位置API的JSON数据。

sudo apt install curl jq		#Ubuntu/Debian
sudo yum install curl jq		#CentOS/RHEL
sudo dnf install curl jq		#Fedora 22+
sudo zypper install curl jq		#openSUSE

查找服务器的公共IP地址

要获取服务器的公共 IP 地址,请使用以下 curl 命令向终端中的 ipinfo.io 发出 API 请求,如图所示。

curl https://ipinfo.io/ip

从 API 获取 IP 位置数据

获得服务器公共 IP 地址后,您现在可以使用以下命令向 ipvigilante.com 的 API 发出请求以获取地理位置数据。确保将 <您的 ip 地址> 替换为服务器的公共 IP。

curl https://ipvigilante.com/<your ip address>

这是我们从上面的命令得到的数据。

使用 Bash 脚本自动化 API 调用

现在,为了自动化 API 过程,我们将使用任何您喜欢的命令行编辑器创建一个名为 getipgeoloc.sh 的脚本(您可以将其命名为任何您想要的名称)。

vim getipgeoloc.sh

然后将以下长命令复制并粘贴到其中。

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

保存文件并使用以下命令使脚本可执行。

chmod +x getipgeoloc.sh

最后,运行脚本来获取您的 Linux IP 地理位置,如下面的屏幕截图所示。

./getipgeoloc.sh

上面的脚本显示了城市国家名称以及大致的纬度经度坐标。

或者,您也可以运行上述命令而不将其保存在脚本中,如图所示。

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

您可能还想阅读以下相关文章:

  1. 在 Linux 终端中查找服务器公共 IP 地址的 4 种方法
  2. 找出 Linux 中网络上连接的所有活动主机 IP 地址
  3. 查找访问您的 Apache Web 服务器的前 10 个 IP 地址

现在就是这样!在这篇简短的文章中,我们展示了如何使用 curljq 命令从终端获取您的 Linux IP 地理位置。与我们分享您的想法或通过下面的反馈表提出任何问题。