首页 > 网站 > 建站经验 > 正文

C#设置本 地网络如DNS、网关、子网掩码、IP等等

2019-11-02 15:10:03
字体:
来源:转载
供稿:网友

 手动设置本地网络的方法显然很不可取,所以我们要让程序帮我们完成,需要的朋友可以参考下

如今网络在我们的生活工作中所起的作用越来越大,可以说离开了网络我们就无法正常的工作和生活。作为程序员我们写的程序大多数也会跟网络相关,而想要使用网络首先要将机器的网络配置设置好。而手动设置的方法显然很不可取,所以我们要让程序帮我们完成。下面是一个很常用的C#设置系统各种网络参数的一个小Demo一起看看吧。  这个Demo是通过"Win32_NetworkAdapterConfiguration"这个管理类.这里面已基本包括了IP,DNS,网关的设置信息。  在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> /// 网络设置类,设置网络的各种参数(DNS、网关、子网掩码、IP) /// </summary> public class NetworkSetting { 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 string[] { 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) { SetIPAddress(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 string[] { 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_NetworkAdapterConfiguration"); ManagementObjectCollection moc = wmi.GetInstances(); ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; foreach (ManagementObject mo in moc) { //如果没有启用IP设置的网络设备则跳过 if (!(bool) mo["IPEnabled"]) continue;  //设置IP地址和掩码 if (ip != null && submask != null) { inPar = mo.GetMethodParameters("EnableStatic"); inPar["IPAddress"] = ip; inPar["Sub
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表