通過命令行查找 Ubuntu 服務器的地理位置

有時您想根據 IP 地址獲取遠程 Ubuntu 機器的地理位置。 本文將解釋如何通過首先獲取系統的公共服務器 IP,然後使用該 IP 獲取地理位置來實現這一點,所有這些都通過 ipinfo.io 和 ipvigilante.com 提供的 API

我們已經在 Ubuntu 18.04 LTS 系統上運行了本文中提到的命令和過程。

在終端上顯示 IP 地址的地理位置

為了獲取服務器的地理位置,您將需要 Curl 下載器和 JQ 命令行工具。 此工具可讓您從 Internet 上的地理定位 API 獲取和處理所需的數據。 請按照以下步驟安裝這些工具,然後使用您機器的公共 IP 獲取所需的位置信息。

第 1 步:安裝 Curl 和 jq 包

Curl 和 jq 可以通過官方 Ubuntu 存儲庫輕鬆獲得,並且可以使用 apt-get 命令通過命令行安裝。

通過系統應用程序啟動器搜索或通過 Ctrl+Alt+T 快捷方式打開您的終端應用程序。

下一步是通過以下命令更新系統的存儲庫索引:

$ sudo apt-get update

這有助於您從 Internet 安裝最新可用版本的軟件。

請注意,只有授權用戶才能在 Ubuntu 上添加、刪除和配置軟件。

現在您已準備好安裝所需的工具; 您可以通過運行以下命令來做到這一點 sudo:

$ sudo apt-get install curl jq

系統可能會詢問您的密碼 sudo 並為您提供 Y/n 選項以繼續安裝。 Enter Y 然後按回車鍵; 該軟件將安裝在您的系統上。 但是,此過程可能需要一些時間,具體取決於您的 Internet 速度。

第 2 步:找到 Ubuntu 機器/服務器的公共 IP

Internet 上的所有服務器都可以通過公共 IP 地址識別。 這是直接或通過網絡流量路由器分配給您的服務器的 IP 地址。 我們可以使用 ipinfo.io 提供的 API 獲取您機器的這個 IP。

使用以下 curl 命令以獲取您的公共 IP:

$ curl https://ipinfo.io/ip

由於隱私問題,這裡的輸出是模糊的,是公共 IP,通過它您的服務器在 Internet 世界中被識別。

第 3 步:根據公共 IP 獲取地理位置

一旦您知道您的公共 IP,您就可以向 ipvigilante.com 的 API 發出請求,以向您發送服務器的地理位置。 使用 curl 下面提到的命令來獲取您的位置詳細信息,例如:

  • 大陸
  • 國家
  • 州/省
  • 城市
  • 緯度和經度
$ curl https://ipvigilante.com/<public-IP>

您獲得的信息非常詳細,並且很好地達到了目的。

使用 Bash 腳本打印地理位置

不必每次必須檢查您的地理位置時都遵循上述步驟,您可以使用 bash 我們將在這裡描述的腳本。 有了這個 bash 腳本,您可以通過運行此腳本的單個命令自動化您的系統以獲取服務器的地理詳細信息。 您可以這樣做:

在您最喜歡的文本編輯器之一中打開一個新的腳本文件。 我們將使用 nano 編輯器打開一個名為 geo_location.sh 的空腳本文件

$ nano geo_location.sh

在該空文件中,添加以下腳本。

curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

小費: 而不是將整個腳本輸入到您的 bash 文件,您可以從這裡複製它並使用 Ctrl+Shift+V 粘貼到終端中,或者使用右鍵單擊菜單中的粘貼選項。

現在,通過 Ctrl+X 快捷方式退出文件並將文件保存在“Save 修改緩衝區?” 通過鍵入 Y 然後按 Enter 進行提示。

為了使該文件成為可執行腳本,請在終端中運行以下命令:

$ chmod +x geo_location.sh

最後,按如下方式運行此腳本:

$ ./geo_location.sh

您可以看到此腳本如何將服務器的緯度、經度、城市和國家/地區名稱整齊地打印到終端。

如果您只需要獲取服務器的地理位置,則無需形成 bash 腳本。 否則,每次您必鬚根據公共 IP 檢查 Ubuntu 機器的圖形位置時,腳本都會自動執行整個過程。