C#讀取本地網(wǎng)絡(luò)配置信息的方法小結(jié)
應(yīng)用場(chǎng)景
- 網(wǎng)絡(luò)診斷工具
開(kāi)發(fā)網(wǎng)絡(luò)診斷工具時(shí),需要獲取本地網(wǎng)絡(luò)接口的信息,如IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等,以幫助診斷網(wǎng)絡(luò)連接問(wèn)題。 - 動(dòng)態(tài)網(wǎng)絡(luò)配置
在某些應(yīng)用場(chǎng)景中,如云計(jì)算或容器化部署,可能需要根據(jù)當(dāng)前環(huán)境動(dòng)態(tài)配置網(wǎng)絡(luò)設(shè)置,例如自動(dòng)配置IP地址或更新DNS服務(wù)器地址。 - 監(jiān)控和日志
網(wǎng)絡(luò)配置信息對(duì)于監(jiān)控網(wǎng)絡(luò)狀態(tài)和記錄網(wǎng)絡(luò)活動(dòng)日志至關(guān)重要。通過(guò)程序獲取這些信息,可以幫助開(kāi)發(fā)者或系統(tǒng)管理員更好地了解網(wǎng)絡(luò)行為和識(shí)別潛在問(wèn)題。
示例
以下是使用C#讀取本地網(wǎng)絡(luò)配置信息的幾個(gè)示例。
示例1: 獲取所有網(wǎng)絡(luò)接口的信息
此示例展示了如何獲取本地計(jì)算機(jī)上所有網(wǎng)絡(luò)接口的基本信息。
using System; using System.Windows; using System.Net.NetworkInformation; class Program { static void Main() { StringBuilder sb = new StringBuilder(); sb.AppendLine($"本地網(wǎng)絡(luò)接口信息:");// 獲取并遍歷所有網(wǎng)絡(luò)接口 foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) { sb.AppendLine($"名稱: {ni.Name}"); sb.AppendLine($"描述: {ni.Description}"); sb.AppendLine($"狀態(tài): {ni.OperationalStatus}"); sb.AppendLine($"MAC 地址: {ni.GetPhysicalAddress()}"); sb.AppendLine("======================================="); } MessageBox.Show(sb.ToString()); } }
示例2: 獲取特定網(wǎng)絡(luò)接口的IP配置信息
此示例展示了如何獲取指定網(wǎng)絡(luò)接口的IP地址、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)。
using System; using System.Linq; using System.Windows; using System.Net.NetworkInformation; using System.Net.Sockets; class Program { static void Main() { // 指定要檢索的網(wǎng)絡(luò)接口名稱 string interfaceName = "Wi-Fi"; var networkInterface = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(ni => ni.Name == interfaceName); string message = ""; if (networkInterface != null) { message += $"網(wǎng)絡(luò)接口: {networkInterface.Name}\n"; var ipProperties = networkInterface.GetIPProperties(); // 獲取IPv4配置信息 var ipv4Properties = ipProperties.UnicastAddresses.FirstOrDefault(ua => ua.Address.AddressFamily == AddressFamily.InterNetwork); if (ipv4Properties != null) { message += $"IP 地址: {ipv4Properties.Address}\n"; message += $"子網(wǎng)掩碼: {ipv4Properties.IPv4Mask}\n"; } // 獲取默認(rèn)網(wǎng)關(guān) var gatewayAddress = ipProperties.GatewayAddresses.FirstOrDefault(ga => ga.Address.AddressFamily == AddressFamily.InterNetwork); if (gatewayAddress != null) { message += $"默認(rèn)網(wǎng)關(guān): {gatewayAddress.Address}\n"; } } else { message = "指定的網(wǎng)絡(luò)接口未找到。"; } MessageBox.Show(message); } }
示例3: 獲取DNS服務(wù)器地址
此示例展示了如何獲取和顯示本地網(wǎng)絡(luò)接口配置的DNS服務(wù)器地址。
using System; using System.Net.NetworkInformation; using System.Linq; using System.Windows; class Program { static void Main() { // 選擇一個(gè)活動(dòng)的網(wǎng)絡(luò)接口 var activeInterface = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(ni => ni.OperationalStatus == OperationalStatus.Up); string message = ""; if (activeInterface != null) { message += $"網(wǎng)絡(luò)接口: {activeInterface.Name}\n"; var ipProperties = activeInterface.GetIPProperties(); // 獲取DNS服務(wù)器地址 var dnsAddresses = ipProperties.DnsAddresses; foreach (var dns in dnsAddresses) { message += $"DNS服務(wù)器地址: {dns}\n"; } } else { message = "未找到活動(dòng)的網(wǎng)絡(luò)接口。"; } MessageBox.Show(message, "網(wǎng)絡(luò)信息", MessageBoxButton.OK, MessageBoxImage.Information); } }
以上示例展示了如何在C#中讀取本地網(wǎng)絡(luò)配置信息,包括網(wǎng)絡(luò)接口的基本信息、IP配置以及DNS服務(wù)器地址。通過(guò)這些信息,開(kāi)發(fā)者可以開(kāi)發(fā)出功能豐富的網(wǎng)絡(luò)應(yīng)用程序,滿足不同的業(yè)務(wù)需求。
到此這篇關(guān)于C#讀取本地網(wǎng)絡(luò)配置信息的方法小結(jié)的文章就介紹到這了,更多相關(guān)C#讀取網(wǎng)絡(luò)配置信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WPF實(shí)現(xiàn)Badge標(biāo)識(shí)的示例代碼
這篇文章主要為大家詳細(xì)介紹了WPF如何實(shí)現(xiàn)Badge標(biāo)識(shí),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下2023-06-06詳解如何通過(guò)C#/VB.NET調(diào)整PDF文檔頁(yè)邊距
PDF邊距是頁(yè)面主要內(nèi)容區(qū)域和頁(yè)面邊緣之間的距離。與Word頁(yè)邊距不同,PDF文檔的頁(yè)邊距很難更改。本文將介紹如何在不更改頁(yè)面大小的情況下使用C#/VB.NET?代碼調(diào)整PDF文檔的頁(yè)邊距,需要的可以參考一下2023-04-04C#類繼承中構(gòu)造函數(shù)的執(zhí)行序列示例詳解
這篇文章主要給大家介紹了關(guān)于C#類繼承中構(gòu)造函數(shù)的執(zhí)行序列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09C#接口INotifyPropertyChanged使用方法
這篇文章介紹了C#接口INotifyPropertyChanged的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01C#實(shí)現(xiàn)幾十萬(wàn)級(jí)數(shù)據(jù)導(dǎo)出Excel及Excel各種操作實(shí)例
本篇文章主要介紹了C#實(shí)現(xiàn)幾十萬(wàn)級(jí)數(shù)據(jù)導(dǎo)出Excel及Excel各種操作實(shí)例,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-02-02