C#讀取本地網(wǎng)絡(luò)配置信息的方法小結(jié)
應(yīng)用場景
- 網(wǎng)絡(luò)診斷工具
開發(fā)網(wǎng)絡(luò)診斷工具時(shí),需要獲取本地網(wǎng)絡(luò)接口的信息,如IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等,以幫助診斷網(wǎng)絡(luò)連接問題。 - 動(dòng)態(tài)網(wǎng)絡(luò)配置
在某些應(yī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)重要。通過程序獲取這些信息,可以幫助開發(fā)者或系統(tǒng)管理員更好地了解網(wǎng)絡(luò)行為和識(shí)別潛在問題。
示例
以下是使用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ù)器地址。通過這些信息,開發(fā)者可以開發(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)文章
C#使用DES和AES實(shí)現(xiàn)加密解密功能示例
這篇文章主要介紹了C#使用DES和AES實(shí)現(xiàn)加密解密功能,結(jié)合具體實(shí)例形式分析了C#實(shí)現(xiàn)DES與AES的加密解密功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
C#使用Free Spire.Doc查找并高亮Word中指定文本的實(shí)現(xiàn)步驟
在文檔處理場景中,如何高效地查找并高亮Word中的指定文本是一個(gè)常見痛點(diǎn),尤其在自動(dòng)化辦公、批量處理報(bào)告或數(shù)據(jù)提取等場景下,本文將分享一種基于Free Spire.Doc for .NET的免費(fèi)實(shí)現(xiàn)方案,幫助開發(fā)者在C#項(xiàng)目中實(shí)現(xiàn)查找 Word中指定文本并高亮顯示的功能2025-09-09
C#中驗(yàn)證sql語句是否正確(不執(zhí)行語句)
C#中驗(yàn)證sql語句是否正確(不執(zhí)行語句),需要的朋友可以參考一下2013-03-03

