使用 Tkinter 建立一個檢查域名可用性的 GUI
為什麼需要域名?
網際網路已成為我們日常生活中不可或缺的一部分。對於企業而言,擁有網路存在感至關重要。選擇合適的域名是為任何企業建立網路存在感的首要步驟。但是,找到一個可用的域名可能是一項艱鉅的任務。在本技術文件中,我們將指導您完成使用 Tkinter 模組在 Python 中建立圖形使用者介面 (GUI) 以檢查域名可用性的過程。
什麼是域名,它的組成部分是什麼?
在網際網路環境中,域名或簡稱域名是指用於標識全球資訊網上網站或 Web 伺服器的唯一名稱。它是稱為域名系統 (DNS) 的更大系統的一部分,該系統有助於將使用者友好的域名轉換為計算機用於相互識別的 IP 地址。
域名由兩個或多個用句點分隔的元件組成。最右邊的元件稱為頂級域名 (TLD),通常標識與域名關聯的組織或國家型別。例如,.com 是一個常用的 TLD,用於商業網站,而 .org 用於非營利組織。
TLD 左側的下一個元件是二級域名 (SLD),它標識與域名關聯的特定組織或實體。例如,在域名“google.com”中,“google”是 SLD,而“.com”是 TLD。
域名用於各種目的,例如標識網站、電子郵件伺服器和網際網路上的其他資源。當某人將其 Web 瀏覽器中輸入域名時,瀏覽器會向 DNS 伺服器傳送請求以獲取與該域名關聯的 IP 地址。獲取 IP 地址後,瀏覽器就可以連線到與該域名關聯的 Web 伺服器並檢索請求的網頁。
域名由域名註冊商註冊和管理,域名註冊商是由網際網路名稱與數字地址分配機構 (ICANN) 授權管理域名註冊的公司。註冊商收取註冊和續訂域名的費用,並負責維護與每個域名關聯的 DNS 記錄。
總之,域名是用於標識網際網路上網站或 Web 伺服器的唯一名稱。它由兩個或多個用句點分隔的元件組成,並用於將使用者友好的域名轉換為計算機可用於連線到 Web 伺服器的 IP 地址。域名由域名註冊商註冊和管理,域名註冊商由 ICANN 授權管理域名註冊。
先決條件
在深入探討建立 GUI 的細節之前,您應該具備 Python 程式設計、面向物件程式設計 (OOP) 概念以及如何使用 Tkinter 模組的基本瞭解。
推薦設定列表 -
pip install tkinter
預計使用者將能夠訪問任何獨立的 IDE,例如 VS-Code、PyCharm、Atom 或 Sublime text。
甚至可以使用線上 Python 編譯器,例如 Kaggle.com、Google Cloud 平臺或任何其他編譯器。
更新版本的 Python。在撰寫本文時,我使用了 3.10.9 版本。
瞭解如何使用 Jupyter notebook。
虛擬環境的知識和應用將是有益的,但不是必需的。
還預計該人員將對統計學和數學有很好的理解。
完成任務所需的步驟
步驟 1:匯入必要的模組
import tkinter as tk import requests
Tkinter 模組用於建立 GUI 視窗,requests 模組用於向域名註冊商 API 發出 HTTP 請求。
步驟 2:建立 GUI 視窗
root = tk.Tk() root.title("Domain Availability Checker")
接下來,我們需要建立 GUI 視窗。我們可以透過從 Tkinter 模組建立 Tk() 類的例項來做到這一點。我們還可以使用 title() 方法設定視窗的標題。
步驟 3:建立標籤和輸入欄位
heading_label = tk.Label(root, text="Check Domain Availability", font=("Helvetica", 20, "bold")) heading_label.grid(row=0, column=0, columnspan=2, padx=10, pady=10) domain_label = tk.Label(root, text="Domain Name:") domain_label.grid(row=1, column=0, padx=10, pady=10) domain_entry = tk.Entry(root) domain_entry.grid(row=1, column=1, padx=10, pady=10)
我們將建立兩個標籤和兩個輸入欄位。第一個標籤將顯示“域名”,第二個標籤將顯示域名檢查的結果。第一個輸入欄位將允許使用者輸入他們想要檢查的域名,第二個輸入欄位將顯示結果。我們使用 grid() 方法在 GUI 視窗中定位標籤和輸入欄位。
步驟 4:建立檢查域名可用性的函式
接下來,我們將建立一個函式來檢查域名是否可用。當用戶單擊“檢查”按鈕時,將呼叫該函式。
def check_domain_availability(): domain_name = domain_entry.get() try: whois.whois(domain_name) availability_label.config(text="Domain is not available") except: availability_label.config(text="Domain is available")
接下來,我們定義函式 check_domain_availability()。當用戶單擊“檢查可用性”按鈕時,將呼叫此函式。該函式獲取輸入欄位中的使用者輸入,並使用 whois 包檢查域名是否可用。我們首先匯入 whois 包,然後定義一個 try-except 塊來處理域名不可用的情況。如果域名可用,我們將顯示一條訊息“域名可用”,如果不可用,我們將顯示一條訊息“域名不可用”。
步驟 5:建立檢查按鈕
check_button = tk.Button(root, text="Check Availability", command=check_domain_availability) check_button.grid(row=1, column=1, pady=10) availability_label = tk.Label(root, text="") availability_label.grid(row=2, column=0, columnspan=2)
最後,我們建立按鈕和標籤部件並將它們放置在 GUI 視窗上。我們使用 Button() 函式建立一個“檢查可用性”按鈕,並將 check_domain_availability() 函式分配給 command 引數。我們還建立一個標籤部件以使用 Label() 函式顯示可用性狀態。然後,我們使用 grid() 方法在 GUI 視窗上定位部件。
步驟 6:最後,我們呼叫 mainloop() 函式來執行 GUI 視窗。
root.mainloop()
最終程式碼,程式
import tkinter as tk import whois root = tk.Tk() root.title("Domain Availability Checker") heading_label = tk.Label(root, text="Check Domain Availability", font=("Helvetica", 20, "bold")) heading_label.grid(row=0, column=0, columnspan=2, padx=10, pady=10) domain_label = tk.Label(root, text="Domain Name:") domain_label.grid(row=1, column=0, padx=10, pady=10) domain_entry = tk.Entry(root) domain_entry.grid(row=1, column=1, padx=10, pady=10) def check_domain_availability(): domain_name = domain_entry.get() try: whois.whois(domain_name) availability_label.config(text="Domain is not available") except: availability_label.config(text="Domain is available") check_button = tk.Button(root, text="Check Availability", command=check_domain_availability) check_button.grid(row=2, column=1, pady=10) availability_label = tk.Label(root, text="") availability_label.grid(row=3, column=0, columnspan=2) root.mainloop()
執行程式碼後,您應該會看到一個 GUI 視窗,其中包含標題、標籤和輸入欄位以輸入域名、“檢查可用性”按鈕以及一個標籤以顯示可用性狀態。輸入域名並單擊按鈕後,可用性狀態將顯示在標籤部件中。
輸出
步驟 1:GUI 開啟以請求使用者輸入

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

此圖片顯示了域名可用性檢查器的使用者輸入和輸出。
結論
在本文中,我們討論瞭如何使用 Tkinter 構建帶有圖形使用者介面 (GUI) 的域名可用性檢查器工具。我們介紹了設定開發環境、設計 GUI、編寫程式碼、新增錯誤處理、測試和部署所涉及的步驟。域名可用性檢查器工具可以成為企業檢查其所需域名可用性的有用工具,我們希望本教程對設計和構建一個工具有所幫助。