這款開源終端工具可查詢 IP 資訊

在 Linux 下,有dignslookuptraceroute等多種非常實用的網路調試工具。

  • dig:是常用的域名查詢工具,可以用來測試域名是否正常。
  • nslookup:是常用的域名查詢工具,也就是查 DNS 資訊時用到的命令,它有兩種工作模式,分別為互動模式和非互動模式。

互動模式:使用者可以向域名伺服器查詢各類主機、域名的資訊或輸出域名中的主機列表。
非互動模式:使用者可以針對一個主機或域名僅獲取它特定的名稱或所需資訊。

  • traceroute:是用於追蹤資料包在網路上傳輸時的全部路徑。

那麼,在這篇文章中,給大家介紹一個可以在終端下查詢 IP 地理資訊和 CDN 提供商的工具 —— nali

nali中文裡的諧音是「哪裡」。它最初是基於 C 語言編寫的小工具,由於版本功能的缺失,js 版本包問題、支持的平臺有限。

後來基於 GoLang 重寫了這款工具,在原有功能的基礎之上增加了對 IPv6 的支持,並且增加了 Geoip2 資料庫。

1. nali 的特徵

  • 支持多種資料庫
  • 純真 IPv4 離線資料庫
  • ZX IPv6 離線資料庫
  • Geoip2 城市資料庫 (可選)
  • IPIP 資料庫 (可選)
  • ip2region 資料庫 (可選)
  • CDN 服務提供商查詢
  • 支持管道處理
  • 支持互動式查詢
  • 支持 IPv4 和 IPv6
  • 支持多語言
  • 查詢完全離線
  • 全平臺支持
  • 支持彩色輸出

2. nali 的安裝

通過原始碼安裝 nali,需預先安裝 Go >= 1.18 的版本。

# go install github.com/zu1k/nali

下載預編譯的可執行程序進行安裝 nali,可直接通過 nali 項目中的 Release 頁面選擇適合目前的系統及硬體架構的版本進行下載,解壓後直接運行即可。

我這以 CentOS 為例,直接下載的安裝包,進行解壓編譯並更新 nali。

--no-check-certificate參數以不安全的方式連接進行下載。

# wget http://www.dwhd.org/wp-content/uploads/2015/08/nali-0.2.tar.gz --no-check-certificate
# tar xf nali-0.2.tar.gz
#cd nali-0.2
# ./configure && make && make install && nali-update

3. nali 的使用

查詢某個 IP 的地理資訊

# nali 9.9.9.9
9.9.9.9[美國 紐約IBM公司]

除上述查詢方式以外,還可以結合使用|管道符進行查詢。

# echo IP:8.8.8.8 | nali
IP:8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器]

同時查詢多個 IP 地址資訊

# nali 1.1.1.1 8.8.8.8 9.9.9.9
1.1.1.1[澳大利亞]
8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器]
9.9.9.9[美國 紐約IBM公司]

互動式查詢多個 IP 地址資訊,可執行nali回車後,輸入 IP 地址,直到查詢完畢,使用exitquitCtrl+C退出互動式查詢。

# nali
219.141.136.10
219.141.136.10[北京市 電信]
180.76.76.76
180.76.76.76[北京市 百度公司]
223.5.5.5
223.5.5.5[中國 萬網]
exit

nalidig命令結合使用

# dig github.com +short | nali
20.205.243.166[美國 Computer]

nalinslookup命令結合使用

# nslookup github.com 8.8.8.8 | nali
Server:        8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器]
Address:    8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器]#53

Non-authoritative answer:
Name:    github.com
Address: 20.205.243.166[美國 Computer]

查看 CDN 服務提供商,CDN 服務通常使用 CNAME 的域名解析方式,需要與 nslookup 或 dig 結合使用。

# nslookup www.newduba.cn | nali
Server:        192.168.1.1[區域網 對方和您在同一內部網]
Address:    192.168.1.1[區域網 對方和您在同一內部網]#53

Non-authoritative answer:
www.newduba.cn    canonical name = www.newduba.cn.w.kunluncan.com.
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.218[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.220[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.225[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.224[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.221[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.223[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.219[中國 移動]
Name:    www.newduba.cn.w.kunluncan.com
Address: 111.31.66.222[中國 移動]

只查詢 CDN 服務提供商

# nslookup www.xxx.cn | nali cdn

CNAME 域名單獨使用

# nalicdncdn.xxx.com

4. nali 的使用技巧

更新資料庫

# nali update

自定義 IP 資料庫,需設置環境變數NALI_DB_IP4NALI_DB_IP6

目前所支持的變數內容:

Geoip2 ['geoip', 'geoip2', 'geo']
Chunzhen ['chunzhen', 'qqip', 'qqwry']
IPIP ['ipip', 'ipipfree', 'ipip.net']
Ip2Resion ['ip2region', 'region', 'i2r']

若使用第三方的 IP 資料庫,需手動下載對應的 IP 資料庫。

Windows 平臺

使用 geoip 資料庫

set NALI_DB_IP4=geoip
或者使用 powershell
$env:NALI_DB_IP4="geoip"

使用 ipip 資料庫

set NALI_DB_IP6=ipip
或者使用 powershell
$env:NALI_DB_IP6="ipip"

Linux 平臺

使用 geoip 資料庫
export NALI_DB_IP4=geoip

使用 ipip 資料庫
export NALI_DB_IP4=ipip

相關文章

吳峰光殺進 Linux 核心

吳峰光殺進 Linux 核心

【編者按】吳峰光,Linux 核心守護者,學生時代被同學戲稱為「老神仙」,兩耳不聞窗外事,一心只搞 Linux。吳峰光的 Linux 核心之...

宮敏把自由軟體和 Linux 帶回中國

宮敏把自由軟體和 Linux 帶回中國

對於宮敏,在中國的開源界以及技術圈內,大家所熟知的是「中國 Linux 第一人」的稱呼,因為他用手提肩背的方式將 Linux 帶回了中國,組...