在C#中獲取IP地址的最佳實踐是使用System.Net.NetworkInformation
命名空間中的NetworkInterface
類。以下是一個簡單的示例代碼,演示如何獲取本地計算機上所有網絡接口的IP地址:
using System;
using System.Net;
using System.Net.NetworkInformation;
class Program
{
static void Main()
{
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in networkInterfaces)
{
if (networkInterface.OperationalStatus == OperationalStatus.Up)
{
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
UnicastIPAddressInformationCollection ipAddresses = ipProperties.UnicastAddresses;
Console.WriteLine($"Interface: {networkInterface.Name}");
foreach (UnicastIPAddressInformation ipAddress in ipAddresses)
{
Console.WriteLine($"IP Address: {ipAddress.Address}");
}
}
}
}
}
在上面的示例中,我們首先使用NetworkInterface.GetAllNetworkInterfaces()
方法獲取本地計算機上的所有網絡接口。然后遍歷每個網絡接口,檢查其狀態是否為OperationalStatus.Up
,以確保它是活動的。然后通過GetIPProperties()
方法獲取該網絡接口的IP屬性,并遍歷其UnicastAddresses
屬性以獲取所有的IP地址。
這種方法可以幫助您獲取本地計算機上所有網絡接口的IP地址,您可以根據自己的需求對上述代碼進行調整和擴展。