在下一篇文章中,我们将研究如何 获取我们的公共IP地址的地理位置。 我们将能够通过Ubuntu终端中的开放API和简单的bash脚本来执行此操作。 如今,所有连接到Internet的设备都具有IP,该IP已成为全世界的标识符。 此地址是我们将用来获取您的位置的地址。
当我们上网时, 每个服务器都有一个公共IP地址,它直接分配给服务器,也可以通过将网络流量发送到该服务器的路由器分配。 IP地址提供了一种轻松的方法来跟踪服务器在世界范围内的地理位置。 这可以通过使用以下提供的两个API来实现: ipinfo.io e ipvigilante.com 通过它我们可以获取服务器的国家,城市名称及其地理坐标。
在以下几行中,我们将看到 得到 IP的地理位置 从终端帮助我们卷曲和jq。 主要用途 卷曲 是自动执行文件传输或无监督的操作序列,而 jq 是一种非常高级的功能语言,支持JSON数据流的回溯和管理。
终端IP的地理位置
安装Curl和jq
要获取IP地址的地理位置,我们将必须 安装curl 和 jq命令行工具 处理从地理位置API获得的JSON数据。 要同时安装两者,请在终端(Ctrl + Alt + T)中编写以下命令:
sudo apt install curl jq
获取服务器的公共IP地址
在获取位置之前,您需要 知道我们连接到的服务器的公共IP地址。 为此,我们将使用以下cURL命令,通过该命令发出请求 ipinfo.io 从终端(Ctrl + Alt + T)如下所示:
curl https://ipinfo.io/ip
借助API获取系统IP地理位置的数据
执行上一条命令后,我们将获得公共IP地址。 一旦有了它,我们将能够 向ipvigilante.com请求获取地理位置数据。 为此,我们将在终端中使用以下命令(Ctrl + Alt + T)。 重要的是用上一条命令获得的公共IP替换公共IP。
curl https://ipvigilante.com/la-dirección-IP
使用Bash脚本自动执行API调用
为了使与API的通信过程自动化,我们将 在名为以下文件的文件中创建脚本 ipgeolocator.sh (名称是可选的)。 对于它的创建,我们将能够使用任何一个最舒适的命令行编辑器。
vim ipgeolocalizador.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 ipgeolocalizador.sh
在这一点上,我们可以 如下运行脚本以获取IP的地理位置 公众:
./ipgeolocalizador.sh
上面的脚本显示城市和国家/地区名称以及近似的纬度和经度坐标。 事实是 我不知道它可能有的误差范围.
如果您不想将上述长命令保存在文件中, 您也可以直接在终端中运行相同的命令 (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
在这篇简短的文章中,我们看到了 使用终端以及curl和jq命令从Ubuntu获取IP的地理位置。 您可以获取有关的更多信息 jq 或关于 卷曲 在其相应的Wikipedia文章中。