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

operating systemlinuxmca

出于安全、网络犯罪调查、政府合规或仅仅出于好奇,我们可能需要追踪 Linux 服务器在互联网上的地理位置,或者至少追踪将互联网流量转移到我们感兴趣的服务器的服务器位置。这需要获取服务器的 IP 地址,并使用网络上提供的一些第三方服务来映射该 IP 地址以获取位置。在本文中,我们将介绍实现此目的的步骤。

步骤 1 − 安装 curl jq

curl 包将向服务器发出 http 请求,并且需要 jq 处理我们从 API 接收的 JSON 数据,以将 IP 地址映射到地理位置。以下步骤展示了如何安装这些工具。

sudo apt-get install curl jq

运行上述代码得到以下结果 −

$ sudo apt-get install curl jq
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version (7.47.0-1ubuntu2.14).
The following NEW packages will be installed:
jq libonig2
…
..
Setting up libonig2:amd64 (5.9.6-1ubuntu0.1) ...
Setting up jq (1.5+dfsg-1ubuntu0.1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) .

步骤 2 − 查找服务器的 IP 地址

如果您知道服务器所服务的域名,则可以使用 nslookup 查找服务器的 IP 地址。在下面的示例中,我们将了解如何使用 nslookup 命令获取域名的 IP 地址。我们以 oracle.com 为例。

使用以下 curl 命令获取服务器的 IP 地址。Ipinfo.io 是一个提供 IP 详细信息的 Web 服务。

$ nslookup www.oracle.com

运行上述代码得到以下结果 −

Server:127.0.1.1
Address:127.0.1.1#53
Non-authoritative answer:
www.oracle.comcanonical name = ds-www.oracle.com.edgekey.net.
ds-www.oracle.com.edgekey.netcanonical name = e870.dscx.akamaiedge.net.
Name:e870.dscx.akamaiedge.net
Address: 104.80.62.56

步骤 3 − 查找 IP 地址信息

接下来,我们使用 IP info.in 获取与此 IP 地址相关的详细信息。这些信息以 JSON 格式返回,其中列出了主机名、城市、州/省、国家/地区等信息。

$ curl https://ipinfo.io/104.80.62.56

运行上述代码得到以下结果:

{
   "ip": "104.80.62.56",
   "hostname": "a104-80-62-56.deploy.static.akamaitechnologies.com",
   "city": "New York City",
   "region": "New York",
   "country": "US",
   "loc": "40.7143,-74.0060",
   "org": "AS20940 Akamai International B.V.",
   "postal": "10004",
   "timezone": "America/New_York",
   "readme": "https://ipinfo.io/missingauth"
}

查找经纬度

现在,当我们需要经纬度等额外信息时,可以使用另一个名为 ipvigilante.com 的地理定位服务提供商。然后,我们使用 jq 工具从 API 调用返回的 JSON 结构中获取格式化的响应。

$curl -s https://ipvigilante.com/104.80.62.56 | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

运行上述代码得到以下结果 −

"42.36260"
"-71.08430"
"Cambridge"
"United States"

相关文章


有用资源