首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 7 快速取得本機 IP 位址:善用 Indy IdIPWatch 元件

     編輯:Delphi

前言

在網路程式設計中,取得本機 IP 位址是常見需求。早期 Delphi 版本需自行撰寫 Socket 程式碼或呼叫 GetAdaptersInfo 等 API,步驟繁瑣。Delphi 7 內建的 Indy 元件套件提供了 TIdIPWatch,讓開發者只需拖放元件、設定屬性、一行程式碼即可完成。

操作步驟

  1. 建立新 VCL 專案(Project1)。
  2. 從 Win32 頁面放置 TStatusBar(命名 StatusBar1)。
  3. 從 Indy Misc 頁面放置 TIdIPWatch(命名 IdIPWatch1)。
  4. 設定 StatusBar1 的 Panels 屬性,新增兩個 TStatusPanel(索引 0 與 1)。
  5. 將 IdIPWatch1.HistoryEnabled 設為 False(預設即為 False)。
  6. 在 FormCreate 事件撰寫核心程式碼:
procedure TForm1.FormCreate(Sender: TObject);
begin
  { 直接讀取 LocalIP 屬性並顯示於狀態列第二格 }
  StatusBar1.Panels[1].Text := IdIPWatch1.LocalIP;
end;

執行結果

按 F9 執行,視窗下方狀態列即顯示本機目前使用的 IPv4 位址(如 192.168.1.100)。若機器有多張網卡,LocalIP 會回傳系統預設路由介面的 IP。

進階應用:IP 歷史記錄

若將 IdIPWatch1.HistoryEnabled := True,程式結束時會自動在 HistoryFileName 指定的檔案(預設為執行檔同目錄下的 IPHistory.txt)記錄當時的 IP 位址,方便追蹤筆記型電腦在不同網路環境下的 IP 變化。

常見問題與替代方案

  • Indy 版本差異:Delphi 7 內建 Indy 9,後續版本(Delphi 2007+)內建 Indy 10,TIdIPWatch 仍存在但屬性名稱可能調整為 IPAddress 或需呼叫 GetLocalIP 方法。
  • 多網卡/ IPv6:若需列舉所有介面 IP(含 IPv6),建議改用 TIdStack.GetLocalAddressList(Indy 10)或 Windows API GetAdaptersAddresses。
  • 無網路環境:離線時 LocalIP 可能回傳 127.0.0.1 或空字串,建議搭配 TIdIPWatch.Active 或 Ping 檢查。

結語

善用 Delphi 內建元件庫,能大幅減少「重複造輪子」的時間。TIdIPWatch 雖屬小元件,卻完美解決了「快速取得本機 IP」這個高頻需求,是 Delphi 7 時代網路程式開發的實用小技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved