在本文中,我们将向您展示如何使用开放API和简单的bash 脚本从命令行查找远程 Linux 系统的 IP 地址地理位置。
在互联网上,每台服务器都有一个面向公众的 IP 地址,该地址直接分配给服务器或通过将网络流量发送到该服务器的路由器分配。
IP 地址提供了一种简单的方法来跟踪服务器在世界上的位置,方法是使用ipinfo.io和ipvigilante.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 安装curl jq #Fedora 22+ $ sudo zypper 安装curl jq #openSUSE
![](https://www.alaica.com/wp-content/uploads/linux-542.png)
查找服务器的公共IP地址
要获取服务器的公共 IP 地址,请使用以下curl 命令在终端中向ipinfo.io发出 API 请求,如下所示。
$ 卷曲 https://ipinfo.io/ip
![](https://www.alaica.com/wp-content/uploads/linux-543.png)
从 API 获取 IP 位置数据
获得服务器公共 IP 地址后,您现在可以使用以下命令向ipvigilante.com的 API 发出请求以获取地理位置数据。确保替换<your ip address>
为服务器的公共 IP。
$curl https://ipvigilante.com/<您的 IP 地址>
![](https://www.alaica.com/wp-content/uploads/linux-544.png)
这是我们从上面的命令得到的数据。
![](https://www.alaica.com/wp-content/uploads/linux-545.png)
使用 Bash 脚本自动化 API 调用
现在,为了自动化 API 过程,我们将使用您最喜欢的任何命令行编辑器getipgeoloc.sh
创建一个名为(您可以将其命名为任何您想要的名称)的脚本。
$ vim getipgeoloc.sh
然后将以下长命令复制并粘贴到其中。
卷曲-s https://ipvigilante.com/$(卷曲-s https://ipinfo.io/ip) | jq '.data.纬度,.data.经度,.data.城市名称,.data.国家名称'
保存文件并使用以下命令使脚本可执行。
$ chmod +x getipgeoloc.sh
最后,运行脚本来获取您的 Linux IP 地理位置,如下面的屏幕截图所示。
$ ./getipgeoloc.sh
![](https://www.alaica.com/wp-content/uploads/linux-546.png)
上面的脚本显示了城市和国家名称以及大致的纬度和经度坐标。
或者,您也可以运行上述命令而不将其保存在脚本中,如图所示。
$curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.纬度,.data.经度,.data.城市名称,.data.国家名称'
![](https://www.alaica.com/wp-content/uploads/linux-547.png)
您可能还想阅读以下相关文章:
- 在 Linux 终端中查找服务器公共 IP 地址的 4 种方法
- 找出 Linux 中网络上连接的所有活动主机 IP 地址
- 查找访问您的 Apache Web 服务器的前 10 个 IP 地址
现在就这样了!在这篇简短的文章中,我们展示了如何使用curl和jq命令从终端获取Linux IP地理位置。与我们分享您的想法或通过下面的反馈表提出任何问题。