C#怎么设置本地网络DNS、网关、子网掩码、IP等等-创新互联

这篇文章主要介绍“C#怎么设置本地网络DNS、网关、子网掩码、IP等等”,在日常操作中,相信很多人在C#怎么设置本地网络DNS、网关、子网掩码、IP等等问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么设置本地网络DNS、网关、子网掩码、IP等等”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的特克斯网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!


这个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["SubnetMask"] = submask;
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
}

//设置网关地址
if (getway != null)
{
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = getway;
outPar = mo.InvokeMethod("SetGateways", inPar, null);
}

//设置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设置的网络设备则跳过
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是否为四组数组成
if (arr.Length != 4)
return false;


//正则表达式,1~3位整数
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位数组成
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;
}
}
}


到此,关于“C#怎么设置本地网络DNS、网关、子网掩码、IP等等”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

当前题目:C#怎么设置本地网络DNS、网关、子网掩码、IP等等-创新互联
文章地址:https://www.cdcxhl.com/article26/ddgpjg.html

成都网站建设公司_创新互联,为您提供虚拟主机品牌网站建设网站营销软件开发移动网站建设小程序开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作