使用 Python 建立一個 GUI 來查詢域名對應的 IP 地址
在網路方面,IP 地址和域名是兩個關鍵概念,它們確保了網際網路上裝置之間無縫通訊。在本教程中,我們將學習如何使用 Python 建立一個圖形使用者介面 (GUI),該介面可用於查詢分配給域名的 IP 地址。我們將涵蓋以下部分 -
瞭解 IP 地址和域名
安裝所需的庫
構建 GUI
測試應用程式
現實世界中的示例
瞭解 IP 地址和域名
在我們深入構建應用程式之前,瞭解 IP 地址和域名是什麼非常重要。
IP 地址是分配給連線到網際網路的每臺計算機和裝置的唯一識別符號。它由一系列用點分隔的數字組成。例如,173.194.219.100 是 google.com 的 IP 地址。
另一方面,域名是用於識別網際網路上網站的人類可讀地址。例如,google.com 是我們剛才提到的網站的域名。
域名比 IP 地址更容易記憶,因此它們被廣泛使用。但是,計算機使用 IP 地址在網際網路上相互識別。
安裝所需的庫
為了構建 GUI,我們將使用 Python 和 Tkinter 庫。Tkinter 是一個標準的 Python 庫,它提供了一種快速簡便的方法來建立 GUI 應用程式。
要安裝 Tkinter,您需要確保您的系統上已安裝 Python。您可以從官方網站 (https://python.club.tw/downloads/) 下載 Python。
安裝好 Python 後,您可以在終端中執行以下命令來安裝 Tkinter
pip install tkinter
構建 GUI
現在我們已經安裝了所有需要的東西,可以開始構建 GUI 了。我們將建立一個簡單的表單,其中包含一個文字框以輸入域名和一個按鈕以查詢 IP 地址。以下是 GUI 的程式碼
現在讓我們逐段分解程式碼。
import tkinter as tk
我們匯入 Tkinter 庫並將其命名為 tk 以方便使用。
import socket
我們還匯入 socket 庫來查詢 IP 地址。
def get_ip():
這是單擊“查詢 IP”按鈕時呼叫的函式。
domain = domain_name.get()
我們獲取文字框中輸入的文字並將其儲存在 domain 變數中。
ip_address = socket.gethostbyname(domain)
我們使用 socket 庫查詢文字框中輸入的域名的 IP 地址。
result_label.config(text="The IP address of {} is {}".format(domain, ip_address))
我們更新標籤的文字以顯示域名的 IP 地址。我們使用 format() 函式將域名和 IP 地址插入字串中。
root = tk.Tk()
我們建立一個新的 Tkinter 視窗。
root.title("IP Address Lookup")
我們將視窗的標題設定為“IP 地址查詢”。
domain_label = tk.Label(root, text="Domain Name:")
我們建立一個標籤來顯示文字“域名:”。
domain_label.pack()
我們將標籤新增到視窗中。
domain_name = tk.Entry(root)
我們為使用者建立一個文字框以輸入域名。
domain_name.pack()
我們將文字框新增到視窗中。
ip_button = tk.Button(root, text="Find IP", command=get_ip)
我們建立一個文字為“查詢 IP”的按鈕。我們還將命令設定為在單擊按鈕時呼叫 get_ip() 函式。
ip_button.pack()
我們將按鈕新增到視窗中。
result_label = tk.Label(root, text="")
我們建立一個標籤來顯示 IP 查詢的結果。我們將初始文字設定為空字串。
result_label.pack()
我們將標籤新增到視窗中。
root.mainloop()
我們啟動 GUI 的主迴圈,該迴圈偵聽使用者輸入並做出相應的響應。
測試應用程式
要測試應用程式,請將程式碼儲存到檔案(例如,ip_lookup.py)並使用以下命令執行它
python ip_lookup.py
這將啟動 GUI 視窗。在文字框中輸入要查詢的域名,然後單擊“查詢 IP”按鈕。您應該會看到結果標籤中顯示的域名的 IP 地址。
現實世界中的示例
以下是一些您可能需要查詢域名 IP 地址的示例 -
排查網路問題 - 如果您遇到特定網站或服務的網路問題,您可能需要查詢其 IP 地址來診斷問題。
阻止網站 - 您可以透過將網站的域名新增到計算機的主機檔案中並將其指向不存在的 IP 地址來阻止對該網站的訪問。
負載均衡 - 在為網站設定負載均衡器時,您可能需要查詢託管該網站的伺服器的 IP 地址以正確配置負載均衡器。
最終程式碼
import tkinter as tk import socket def get_ip(): domain = domain_name.get() ip_address = socket.gethostbyname(domain) result_label.config(text="The IP address of {} is {}".format(domain, ip_address)) root = tk.Tk() root.title("IP Address Lookup") domain_label = tk.Label(root, text="Domain Name:") domain_label.pack() domain_name = tk.Entry(root) domain_name.pack() ip_button = tk.Button(root, text="Find IP", command=get_ip) ip_button.pack() result_label = tk.Label(root, text="") result_label.pack() root.mainloop()
輸出
步驟 1:GUI 開啟以請求使用者輸入

步驟 2:使用者輸入查詢後,我們可以看到結果

此圖片顯示了使用者輸入和使用者輸入域名的輸出,這是即時的,因此任何人都可以使用它來查詢世界各地的任何域名。在此示例中,我們使用 Google.com 作為示例進行演示。
結論
在本教程中,我們學習瞭如何使用 Python 和 Tkinter 庫建立一個 GUI 來查詢域名的 IP 地址。我們涵蓋了從瞭解 IP 地址和域名到構建 GUI 和測試應用程式的所有內容。我們還提供了在現實世界中可能需要查詢域名 IP 地址的一些示例。有了這些知識,您可以輕鬆地建立更復雜的網路應用程式。