在 C# 中,您可以使用 System.Net.NetworkInformation 命名空間來讀取本地網(wǎng)絡(luò)配置信息。這可以包括獲取網(wǎng)絡(luò)適配器的狀態(tài)、IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)等信息。以下是如何實現(xiàn)這一功能的詳細(xì)步驟和示例代碼。
1. 引入命名空間
確保您在代碼文件中包含以下命名空間:
using System;using System.Net.NetworkInformation;using System.Net;
2. 讀取網(wǎng)絡(luò)配置信息
以下示例代碼展示了如何讀取并顯示本地網(wǎng)絡(luò)配置信息:
class Program{
static void Main(string[] args)
{
// 獲取本地網(wǎng)絡(luò)適配器的信息
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in networkInterfaces)
{
Console.WriteLine($"網(wǎng)絡(luò)適配器名稱: {networkInterface.Name}");
Console.WriteLine($"描述: {networkInterface.Description}");
Console.WriteLine($"類型: {networkInterface.NetworkInterfaceType}");
Console.WriteLine($"狀態(tài): {networkInterface.OperationalStatus}");
Console.WriteLine($"MAC 地址: {networkInterface.GetPhysicalAddress()}");
// 獲取 IP 地址信息
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
// 獲取 IPv4 地址
foreach (var unicast in ipProperties.UnicastAddresses)
{
if (unicast.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
Console.WriteLine($"IPv4 地址: {unicast.Address}");
Console.WriteLine($"子網(wǎng)掩碼: {unicast.IPv4Mask}");
}
}
// 獲取網(wǎng)關(guān)
foreach (var gateway in ipProperties.GatewayAddresses)
{
if (gateway.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
Console.WriteLine($"默認(rèn)網(wǎng)關(guān): {gateway.Address}");
}
}
Console.WriteLine("------------------------------------");
}
Console.WriteLine("按任意鍵退出...");
Console.ReadKey();
}}
代碼解析
獲取網(wǎng)絡(luò)適配器信息:
使用 NetworkInterface.GetAllNetworkInterfaces() 獲取系統(tǒng)中的所有網(wǎng)絡(luò)適配器。
遍歷每個適配器:
輸出適配器的名稱、描述、類型和狀態(tài)。
獲取 IP 配置:
使用 GetIPProperties() 方法獲取適配器的 IP 地址屬性。
輸出 IPv4 地址和子網(wǎng)掩碼:
遍歷 UnicastAddresses 列表,并檢查地址類型是否為 IPv4。
獲取并輸出默認(rèn)網(wǎng)關(guān):
遍歷 GatewayAddresses 列表,獲取默認(rèn)網(wǎng)關(guān)的信息。
3. 運行程序
將上述代碼復(fù)制到新的 C# 控制臺應(yīng)用程序中并運行。當(dāng)程序執(zhí)行時,它將列出本地計算機中所有網(wǎng)絡(luò)適配器的配置信息。
注意事項
確保您有足夠的權(quán)限來訪問網(wǎng)絡(luò)配置信息,某些網(wǎng)絡(luò)設(shè)置可能需要管理員權(quán)限。
如果在沒有網(wǎng)絡(luò)連接的情況下運行程序,可能會看到部分或沒有信息。
總結(jié)
使用 System.Net.NetworkInformation 命名空間,您可以輕松讀取并顯示計算機的網(wǎng)絡(luò)配置信息。這對網(wǎng)絡(luò)監(jiān)控、調(diào)試和其他應(yīng)用場景非常有用。通過進(jìn)一步擴展代碼,您可以將更多的相關(guān)信息提取并利用。
該文章在 2024/12/4 15:17:24 編輯過