如何在終端查詢 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"

更新於:2020 年 1 月 3 日

4K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.