《C#设置本地网络如DNS、网关、子网掩码、IP等等_.docx》由会员分享,可在线阅读,更多相关《C#设置本地网络如DNS、网关、子网掩码、IP等等_.docx(10页珍藏版)》请在三一文库上搜索。
1、C#设置本地网络如DNS、网关、子网掩码、IP等等_ 手动设置本地网络的方法明显很不行取,所以我们要让程序帮我们完成,需要的伴侣可以参考下 如今网络在我们的生活工作中所起的作用越来越大,可以说离开了网络我们就无法正常的工作和生活。作为程序员我们写的程序大多数也会跟网络相关,而想要用法网络首先要将机器的网络配置设置好。而手动设置的方法明显很不行取,所以我们要让程序帮我们完成。下面是一个很常用的C#设置系统各种网络参数的一个小Demo一起看看吧。 这个Demo是通过Win32_NetworkAdapterConfiguration这个管理类.这里面已基本包括了IP,DNS,网关的设置信息。 在C#
2、中用法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 / 网络设置类,设置网络的各种参数(DNS、网关、子网掩码、IP) / /summary public class Network
3、Setting public NetworkSetting() / 构造函数规律 / summary / 设置DNS / /summary / param name=dns/param public static void SetDNS(string dns) SetIPAddress(null, null, null, dns); / summary / 设置网关 / /summary / param name=getway/param public static void SetGetWay(string getway) SetIPAddress(null, null, new strin
4、g getway , null); / summary / 设置网关 / /summary / param name=getway/param public static void SetGetWay(string getway) SetIPAddress(null, null, getway, null); / summary / 设置IP地址和掩码 / /summary / param name=ip/param / param name=submask/param public static void SetIPAddress(string ip, string submask) Set
5、IPAddress(new string ip , new string submask , null, null); / summary / 设置IP地址,掩码和网关 / /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 s
6、tring getway , null); / summary / 设置IP地址,掩码,网关和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_Networ
7、kAdapterConfiguration); ManagementObjectCollection moc = wmi.GetInstances(); ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; foreach (ManagementObject mo in moc) /假如没有启用IP设置的网络设备则跳过 if (!(bool) moIPEnabled) continue; /设置IP地址和掩码 if (ip != null submask != null) inPar = mo.GetMet
8、hodParameters(EnableStatic); inParIPAddress = ip; inParSubnetMask = submask; outPar = mo.InvokeMethod(EnableStatic, inPar, null); /设置网关地址 if (getway != null) inPar = mo.GetMethodParameters(SetGateways); inParDefaultIPGateway = getway; outPar = mo.InvokeMethod(SetGateways, inPar, null); /设置DNS地址 if (
9、dns != null) inPar = mo.GetMethodParameters(SetDNSServerSearchOrder); inParDNSServerSearchOrder = dns; outPar = mo.InvokeMethod(SetDNSServerSearchOrder, inPar, null); / summary / 启用DHCP服务器 / /summary public static void EnableDHCP() ManagementClass wmi = new ManagementClass(Win32_NetworkAdapterConfig
10、uration); ManagementObjectCollection moc = wmi.GetInstances(); foreach (ManagementObject mo in moc) /假如没有启用IP设置的网络设备则跳过 if (!(bool) moIPEnabled) continue; /重置DNS为空 mo.InvokeMethod(SetDNSServerSearchOrder, null); /开启DHCP mo.InvokeMethod(EnableDHCP, null); / summary / 推断是否符合IP地址格式 / /summary / param n
11、ame=ip/param / returns/returns public static bool IsIPAddress(string ip) /将完整的IP以“.”为界限分组 string arr = ip.Split(.); /推断IP是否为四组数组成 if (arr.Length != 4) return false; /正则表达式,13位整数 string pattern = d1,3; for (int i = 0; i arr.Length; i+) string d = arri; /推断IP开头是否为0 if (i = 0 d = 0) return false; /推断IP是否是由13位数组成 if (!Regex.IsMatch(d, pattern) return false; if (d != 0) /推断IP的每组数是否全为0 d = d.TrimStart(0); if (d = ) return false; /推断IP每组数是否大于255 if (int.Parse(d) 255) return false; return true; 更多信息请查看IT技术专栏 .