激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - C#設(shè)置本地網(wǎng)絡(luò)如DNS、網(wǎng)關(guān)、子網(wǎng)掩碼、IP等等

C#設(shè)置本地網(wǎng)絡(luò)如DNS、網(wǎng)關(guān)、子網(wǎng)掩碼、IP等等

2019-12-01 12:06C#教程網(wǎng) ASP.NET教程

手動設(shè)置本地網(wǎng)絡(luò)的方法顯然很不可取,所以我們要讓程序幫我們完成,需要的朋友可以參考下

如今網(wǎng)絡(luò)在我們的生活工作中所起的作用越來越大,可以說離開了網(wǎng)絡(luò)我們就無法正常的工作和生活。作為程序員我們寫的程序大多數(shù)也會跟網(wǎng)絡(luò)相關(guān),而想要使用網(wǎng)絡(luò)首先要將機器的網(wǎng)絡(luò)配置設(shè)置好。而手動設(shè)置的方法顯然很不可取,所以我們要讓程序幫我們完成。下面是一個很常用的C#設(shè)置系統(tǒng)各種網(wǎng)絡(luò)參數(shù)的一個小Demo一起看看吧。 

這個Demo是通過"Win32_NetworkAdapterConfiguration"這個管理類.這里面已基本包括了IP,DNS,網(wǎng)關(guān)的設(shè)置信息。 

在C#中使用WMI還是比較簡單的: 

復制代碼代碼如下:


using System; 
using System.Collections.Generic; 
using System.Text; 
using System; 
using System.Collections; 
using System.Text; 
using System.Management; 
using System.Text.RegularExpressions; 


namespace Demo 

/// <summary> 
/// 網(wǎng)絡(luò)設(shè)置類,設(shè)置網(wǎng)絡(luò)的各種參數(shù)(DNS、網(wǎng)關(guān)、子網(wǎng)掩碼、IP) 
/// </summary> 
public class NetworkSetting 

public NetworkSetting() 

// 構(gòu)造函數(shù)邏輯 


/// <summary> 
/// 設(shè)置DNS 
/// </summary> 
/// <param name="dns"></param> 
public static void SetDNS(string[] dns) 

SetIPAddress(null, null, null, dns); 

/// <summary> 
/// 設(shè)置網(wǎng)關(guān) 
/// </summary> 
/// <param name="getway"></param> 
public static void SetGetWay(string getway) 

SetIPAddress(null, null, new string[] { getway }, null); 

/// <summary> 
/// 設(shè)置網(wǎng)關(guān) 
/// </summary> 
/// <param name="getway"></param> 
public static void SetGetWay(string[] getway) 

SetIPAddress(null, null, getway, null); 

/// <summary> 
/// 設(shè)置IP地址和掩碼 
/// </summary> 
/// <param name="ip"></param> 
/// <param name="submask"></param> 
public static void SetIPAddress(string ip, string submask) 

SetIPAddress(new string[] { ip }, new string[] { submask }, null, null); 

/// <summary> 
/// 設(shè)置IP地址,掩碼和網(wǎng)關(guān) 
/// </summary> 
/// <param name="ip"></param> 
/// <param name="submask"></param> 
/// <param name="getway"></param> 
public static void SetIPAddress(string ip, string submask, string getway) 

SetIPAddress(new string[] { ip }, new string[] { submask }, new string[] { getway }, null); 

/// <summary> 
/// 設(shè)置IP地址,掩碼,網(wǎng)關(guān)和DNS 
/// </summary> 
/// <param name="ip"></param> 
/// <param name="submask"></param> 
/// <param name="getway"></param> 
/// <param name="dns"></param> 
public static void SetIPAddress(string[] ip, string[] submask, string[] getway, string[] dns) 

ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
ManagementObjectCollection moc = wmi.GetInstances(); 
ManagementBaseObject inPar = null; 
ManagementBaseObject outPar = null; 
foreach (ManagementObject mo in moc) 

//如果沒有啟用IP設(shè)置的網(wǎng)絡(luò)設(shè)備則跳過 
if (!(bool) mo["IPEnabled"]) 
continue; 

//設(shè)置IP地址和掩碼 
if (ip != null && submask != null) 

inPar = mo.GetMethodParameters("EnableStatic"); 
inPar["IPAddress"] = ip; 
inPar["SubnetMask"] = submask; 
outPar = mo.InvokeMethod("EnableStatic", inPar, null); 


//設(shè)置網(wǎng)關(guān)地址 
if (getway != null) 

inPar = mo.GetMethodParameters("SetGateways"); 
inPar["DefaultIPGateway"] = getway; 
outPar = mo.InvokeMethod("SetGateways", inPar, null); 


//設(shè)置DNS地址 
if (dns != null) 

inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); 
inPar["DNSServerSearchOrder"] = dns; 
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); 




/// <summary> 
/// 啟用DHCP服務器 
/// </summary> 
public static void EnableDHCP() 

ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
ManagementObjectCollection moc = wmi.GetInstances(); 
foreach (ManagementObject mo in moc) 

//如果沒有啟用IP設(shè)置的網(wǎng)絡(luò)設(shè)備則跳過 
if (!(bool) mo["IPEnabled"]) 
continue; 
//重置DNS為空 
mo.InvokeMethod("SetDNSServerSearchOrder", null); 
//開啟DHCP 
mo.InvokeMethod("EnableDHCP", null); 



/// <summary> 
/// 判斷是否符合IP地址格式 
/// </summary> 
/// <param name="ip"></param> 
/// <returns></returns> 
public static bool IsIPAddress(string ip) 

//將完整的IP以“.”為界限分組 
string[] arr = ip.Split('.'); 


//判斷IP是否為四組數(shù)組成 
if (arr.Length != 4) 
return false; 


//正則表達式,1~3位整數(shù) 
string pattern = @"\d{1,3}"; 
for (int i = 0; i < arr.Length; i++) 

string d = arr[i]; 


//判斷IP開頭是否為0 
if (i == 0 && d == "0") 
return false; 


//判斷IP是否是由1~3位數(shù)組成 
if (!Regex.IsMatch(d, pattern)) 
return false; 

if (d != "0") 

//判斷IP的每組數(shù)是否全為0 
d = d.TrimStart('0'); 
if (d == "") 
return false; 

//判斷IP每組數(shù)是否大于255 
if (int.Parse(d) > 255) 
return false; 

} return true; 



好了,寫好上面這個類以后,就等著哪里需要然后NEW一個就可以了。很簡單吧,如果遇到設(shè)置失敗的情況,可能是因為權(quán)限不夠,請參考C#默認以管理員身份運行程序

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩免费看 | 99精品视频在线观看免费播放 | 国产在线播放91 | 免费观看视频91 | 永久免费黄色大片 | 欧美日韩国产一区二区三区在线观看 | 好吊色37pao在线观看 | 成人性视频欧美一区二区三区 | 国产在线看一区 | 在线亚洲播放 | 少妇一级淫片高潮流水电影 | 午夜国产小视频 | 在线播放黄色片 | 亚洲精华液久久含羞草 | 国产精品久久久久久久不卡 | 性生活视频网站 | h色网站在线观看 | 91精品国产99久久久久久 | 高清国产午夜精品久久久久久 | 成人在线视频免费 | 久久国产成人午夜av浪潮 | 成人毛片在线免费看 | 伊人午夜视频 | 狠狠ri| 亚洲一区二区观看播放 | 国产一区二区精品在线观看 | 中文字幕在线观看精品 | 日日综合| 手机免费看一级片 | 久草在线新视觉 | 黄色a级片免费观看 | 美女久久| 亚洲国产成人久久成人52 | 成片免费观看大全 | 国产精品岛国久久久久久 | 国产精品亚洲欧美 | 精品视频 久久久 | 少妇一级淫片免费放播放 | 男人天堂免费 | 毛片免费在线播放 | 黄色影院在线观看视频 |