每個服務器都有一個面向公眾的 IP 地址,該地址通過路由器直接分配給服務器。 這個公共IP地址可用於跟踪服務器的地理位置,它告訴信息包括大陸、國家甚至服務器的估計緯度、經度。
很多時候,您需要根據 IP 地址獲取遠程 Linux 機器的地理位置。 您可能知道如何從 Web 瀏覽器中找到服務器的地理位置,但今天我們將看到如何通過 Debian 操作系統中的終端應用程序找到它。 在本文中,我們將解釋如何找到一個系統的公共 IP,然後通過該系統提供的兩個開放 API 使用該 IP 獲取其地理位置。 ipinfo.io 和 ipvigilante.com。
地理位置信息可以以不同的方式使用。 它的一些用例如下:
- 網絡安全
- 數字廣告
- 內容個性化
- 地理營銷
- 執法
我們已經在 Debian 10 操作系統上運行了本文中提到的命令和過程。
在終端上顯示 IP 地址的地理位置
為了獲取服務器的地理位置,您將需要 Curl 下載器和 JQ 命令行工具。 此工具可讓您從 Internet 上的地理定位 API 獲取和處理所需的數據。 請按照以下步驟安裝這些工具,然後使用您機器的公共 IP 獲取所需的位置信息。
第 1 步:安裝 curl 和 jq
在您的 Debian 操作系統中啟動終端。 為此,請訪問 活動 桌面左上角的選項卡。 然後在搜索欄中輸入 終端. 當終端圖標出現時,單擊它以啟動它。
在終端中使用以下命令切換到 Debian 操作系統中的超級用戶帳戶,然後輸入所需的密碼。
$你的
然後在終端中運行以下命令以更新系統的存儲庫索引:
$ apt-get 更新
Curl 將用於發出 HTTP 請求,jq 將用於處理來自地理定位 API 的 JSON 數據。 Curl 和 jq 在官方 Debian 存儲庫中可用,因此我們可以使用終端中的 apt-get 命令安裝它。
在終端中運行以下命令進行安裝 curl 和 jq:
$ apt 安裝 curl jq
系統將為您提供 是/否 繼續或取消安裝過程的選項。 Enter 是 然後按回車鍵。 然後,稍等片刻,直到上述工具安裝完成。
第 2 步:找到 Debian 機器/服務器的公共 IP
要查找服務器的地理位置數據,我們需要它的公共 IP 地址。 它是由 ISP 分配給您的服務器或路由器的地址。 Internet 上的所有服務器都可以通過該 IP 地址識別。 為了獲取公共 IP 地址,我們將使用提供的 API ipinfo.io.
我們將不得不使用 curl 調用 API 的命令 ipinfo.io. 為此,請打開終端並執行以下命令:
$ curl https://ipinfo.io/ip
上面的輸出(由於隱私問題在這裡模糊)是服務器的公共 IP,通過它它連接到 Internet 世界並在 Internet 世界中被識別。
第 3 步:根據公共 IP 獲取地理位置
現在我們已經獲得了服務器的公共 IP 地址,我們現在將向 ipvigilante.com 的 用於獲取服務器地理位置數據的 API。 我們將利用 curl 為此目的的命令。它將獲取以下詳細信息:
- 大陸
- 國家
- 州/省
- 城市
- 緯度和經度
在終端中執行以下命令以從中獲取地理位置數據 ipvigilante.com 的 API 使用 curl:
$ curl https://ipvigilante.com/
將
替代 IP 地理位置提供商:
curl https://api.geoiplookup.net/?query=
curl https://json.geoiplookup.io/
將
使用 Bash 腳本打印地理位置
每次,您都必須檢查服務器的地理位置,您必須按照上述所有步驟進行操作。 取而代之的是,我們可以通過創建一個自動化這個過程 bash 腳本。 此腳本將允許通過僅運行一個命令來獲取服務器的地理位置。 按照以下步驟創建腳本。
我們可以使用任何文本編輯器創建腳本。 對於當前場景,我們使用的是 nano 編輯器,因此我們將輸入 納米 後跟腳本名稱(將其命名為您想要的任何名稱)。
$ nano geolocation.sh
然後使用右鍵單擊菜單複制並粘貼以下行。
$ curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq ‘.data.latitude, .data.longitude, .data.city_name, .data.country_name’
按 Ctrl+o 保存腳本和 Ctrl+x 退出
現在我們將通過授予可執行權限來執行上述腳本。 為此,請在終端中運行以下命令:
$ chmod +x geo_location.sh
現在我們準備測試腳本。 在終端中運行以下命令以運行腳本。
$ ./geo_location.sh
從上面的輸出中可以看出,腳本已經將服務器的緯度、經度、城市和國家名稱整齊地打印到終端。
就這樣吧! 我們已經學習瞭如何使用 Debian 終端查找服務器地理位置。 IP 地理位置提供了有用的信息,包括國家、城市、緯度和經度的名稱。 您可以使用此信息,如上文所述,可以通過多種方式使用。