首頁 > 後端開發 > C++ > 如何在C#中高效取得伺服器的內部和外部IP位址?

如何在C#中高效取得伺服器的內部和外部IP位址?

DDD
發布: 2025-01-26 06:06:08
原創
447 人瀏覽過

How to Efficiently Get a Server's Internal and External IP Address in C#?

在C#中高效取得伺服器內部和外部IP位址

在網路管理或應用程式偵錯過程中,經常需要取得伺服器的IP位址。本文旨在闡明語法並提供一種最佳化的方法來檢索此資訊。

取得外部IP位址的語法

要確定電腦的外部IP位址(對網際網路可見),請使用以下程式碼:

<code class="language-csharp">string externalIP = new WebClient().DownloadString("https://ipv4.icanhazip.com/");</code>
登入後複製

此程式碼利用「iCanHazIP」服務來取得伺服器的公用IP位址。

取得內部IP位址的語法

要擷取伺服器的內部IP位址(在本機網路內),請使用下列技術:

<code class="language-csharp">string localIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault()?.ToString();</code>
登入後複製

此程式碼迭代與伺服器主機名稱關聯的IP位址列表,並選擇與IPv4位址族對應的位址。

對先前程式碼的分析

問題中提供的程式碼是一種有效的方法,但可以增強其可讀性和效率。以下修改後的版本包含這些改進:

<code class="language-csharp">string localIP = null;
var host = Dns.GetHostEntry(Dns.GetHostName());
foreach (var ip in host.AddressList)
{
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        localIP = ip.ToString();
        break;
    }
}</code>
登入後複製

此版本使用更清晰的循環結構,並對FirstOrDefault()可能返回null的情況進行了處理,避免了潛在的異常。 它直接迭代IP位址列表,找到第一個IPv4位址後立即退出循環,提高了效率。

以上是如何在C#中高效取得伺服器的內部和外部IP位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板