如何在终端查找 Linux 服务器的地理位置?
出于安全、网络犯罪调查、政府合规或仅仅出于好奇的目的,我们可能需要跟踪互联网上 Linux 服务器的地理位置,或者至少是将互联网流量重定向到我们感兴趣的服务器的服务器的位置。这涉及获取服务器的 IP 地址,并使用网络上提供的一些第三方服务将该 IP 地址映射到以获取位置。在本文中,我们将了解实现这一目标的步骤。
步骤 1 - 安装 curl 和 jq
curl 包将向服务器发出 http 请求,而 jq 将用于处理我们从用于将 IP 地址映射到地理位置的 API 收到的 JSON 数据。以下步骤展示了如何安装这些工具。
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 信息的网络服务。
$ 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"
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP