千家信息网

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

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"C#怎么设置本地网络DNS、网关、子网掩码、IP等等",在日常操作中,相信很多人在C#怎么设置本地网络DNS、网关、子网掩码、IP等等问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2026年11月03日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
{
///


/// 网络设置类,设置网络的各种参数(DNS、网关、子网掩码、IP)
///

public class NetworkSetting
{
public NetworkSetting()
{
// 构造函数逻辑
}

///
/// 设置DNS
///

///
public static void SetDNS(string[] dns)
{
SetIPAddress(null, null, null, dns);
}
///
/// 设置网关
///

///
public static void SetGetWay(string getway)
{
SetIPAddress(null, null, new string[] { getway }, null);
}
///
/// 设置网关
///

///
public static void SetGetWay(string[] getway)
{
SetIPAddress(null, null, getway, null);
}
///
/// 设置IP地址和掩码
///

///
///
public static void SetIPAddress(string ip, string submask)
{
SetIPAddress(new string[] { ip }, new string[] { submask }, null, null);
}
///
/// 设置IP地址,掩码和网关
///

///
///
///
public static void SetIPAddress(string ip, string submask, string getway)
{
SetIPAddress(new string[] { ip }, new string[] { submask }, new string[] { getway }, null);
}
///
/// 设置IP地址,掩码,网关和DNS
///

///
///
///
///
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);
}
}
}

///
/// 启用DHCP服务器
///

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);
}
}

///
/// 判断是否符合IP地址格式
///

///
///
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# 子网 学习 代码 更多 网络设备 设备 帮助 实用 接下来 位数 信息 函数 参数 开头 整数 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 云信互联网科技有限公司 互联网科技活动banner 万易互联网科技 科技创新互联网企业 电子科技大学互联网 深圳互联网科技怎么样 福建科技产业互联网发展 互联网媒体平台算高科技产业 互联网科技如何创业 智帮互联网科技公司最近动向 银行科技岗属于互联网吗 风投北京互联网科技 下一代互联网重大应用科技园 信承诺互联网科技有限公司 互联网时代科技型公司的机会 江苏互联网智能科技产品出厂价 上海万顺科技互联网有限公司招聘 互联网科技手抄报图片 杭州融税互联网科技有限公司 耶加雪菲 互联网络科技有限公司 四个字互联网科技公司取名 博兴的互联网电子科技公司 银川新华互联网科技职业技术培训学校图片 茂名市互联网科技产业园 互联网科技革命什么开始 乌苏新华互联网科技做什么的 乌鲁木齐新华智原互联网科技学校 梅州GM互联网络科技有限公司
0