在網路程式設計中,取得本機 IP 位址是常見需求。早期 Delphi 版本需自行撰寫 Socket 程式碼或呼叫 GetAdaptersInfo 等 API,步驟繁瑣。Delphi 7 內建的 Indy 元件套件提供了 TIdIPWatch,讓開發者只需拖放元件、設定屬性、一行程式碼即可完成。
Project1)。TStatusBar(命名 StatusBar1)。TIdIPWatch(命名 IdIPWatch1)。StatusBar1 的 Panels 屬性,新增兩個 TStatusPanel(索引 0 與 1)。IdIPWatch1.HistoryEnabled 設為 False(預設即為 False)。FormCreate 事件撰寫核心程式碼:procedure TForm1.FormCreate(Sender: TObject);
begin
{ 直接讀取 LocalIP 屬性並顯示於狀態列第二格 }
StatusBar1.Panels[1].Text := IdIPWatch1.LocalIP;
end;
按 F9 執行,視窗下方狀態列即顯示本機目前使用的 IPv4 位址(如 192.168.1.100)。若機器有多張網卡,LocalIP 會回傳系統預設路由介面的 IP。
若將 IdIPWatch1.HistoryEnabled := True,程式結束時會自動在 HistoryFileName 指定的檔案(預設為執行檔同目錄下的 IPHistory.txt)記錄當時的 IP 位址,方便追蹤筆記型電腦在不同網路環境下的 IP 變化。
TIdIPWatch 仍存在但屬性名稱可能調整為 IPAddress 或需呼叫 GetLocalIP 方法。TIdStack.GetLocalAddressList(Indy 10)或 Windows API GetAdaptersAddresses。LocalIP 可能回傳 127.0.0.1 或空字串,建議搭配 TIdIPWatch.Active 或 Ping 檢查。善用 Delphi 內建元件庫,能大幅減少「重複造輪子」的時間。TIdIPWatch 雖屬小元件,卻完美解決了「快速取得本機 IP」這個高頻需求,是 Delphi 7 時代網路程式開發的實用小技巧。