【C#】设置有线网卡IP地址,子网掩码,网关,DNS

news/2024/10/30 23:17:33/

方法

    public partial class ComputerInfo{/// <summary>/// 设置IP地址,子网掩码,网关,DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, string geteWay, string dnsMain, string dnsBackup){List<NetworkAdapterInfo> networkAdapterInfos = new List<NetworkAdapterInfo>();//var str = new StringBuilder();ManagementBaseObject inPar = null;ManagementBaseObject outPar = null;ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){//屏蔽代码,避免出现无法修改未连接的有线网卡驱动//if (!(bool)mo["IPEnabled"])//    continue;networkAdapterInfos.Add(new NetworkAdapterInfo(){Description = mo["Description"].ToString(),IPEnabled = mo["IPEnabled"].ToString(),});//判断有线网卡var description = mo["Description"].ToString();//有线网卡//Realtek PCIe GbE Family Controller//无线网卡//Qualcomm QCA9565 802.11b/g/n Wireless Adapter//Realtek RTL8852AE WiFi 6 802.11ax PCle Adapter//Intel(R) Wi-Fi 6AX201 160MHzif (description.Contains("PCI") && new List<string>() { "Wireless", "WiFi", "Wi-Fi", "WLAN" }.Exists(w => description.Contains(w)) == false){//设置ip地址和子网掩码 inPar = mo.GetMethodParameters("EnableStatic");inPar["IPAddress"] = new string[] { ipAddress };inPar["SubnetMask"] = new string[] { subMask };outPar = mo.InvokeMethod("EnableStatic", inPar, null);//设置网关地址 inPar = mo.GetMethodParameters("SetGateways");inPar["DefaultIPGateway"] = new string[] { geteWay };outPar = mo.InvokeMethod("SetGateways", inPar, null);//设置DNS inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");inPar["DNSServerSearchOrder"] = new string[] { dnsMain, dnsBackup };outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);}//foreach (var item in mo.Properties)//{//    str.Append($"{item.Name}:{item.Value}\r\n");//}}//var info = str.ToString();return networkAdapterInfos;}}

例子

var networkAdapterInfos = ComputerInfo.SetIpAddressSubMaskDnsGeteway("192.168.11.20", "255.255.255.0", "192.168.11.1", "192.168.11.1", "8.8.8.8");

参考:

1.区分有线网卡和无线网卡:https://www.cnblogs.com/CPFlying/archive/2010/03/14/1685733.html

2.设置ip:c# 如何对网络信息进行相关设置(ip,dns,网关等)_C#教程_脚本之家


http://www.ppmy.cn/news/1026926.html

相关文章

Kubernetes 初接触

Kubernetes 初接触 一、Kubernetes 概述1.1 K8S 是什么&#xff1f;1.2 为什么要用 K8S?1.3 Kubernetes 主要功能 二、Kubernetes 集群架构与组件2.1 核心组件2.1.1 Master 组件2.1.1.1 这些控制器主要包括 2.1.2 配置存储中心2.1.3 Node 组件 2.2 Kubernetes 核心概念2.2.1 P…

点亮你的第一颗Led灯

1、&#x1f4d5;前言 该系列文章用于记录个人学习stm32单片机的过程&#xff0c;全文搭配图文解说&#xff0c;零基础的萌新也能读懂&#xff0c;欢迎指导讨论~ 2、&#x1f4e6;准备材料 2.1、&#x1f4dd;硬件材料清单 面包板1块 PWLINK PowerWriter仿真器1个 杜…

EVE-NG 隐藏没有镜像的模板

eve-ng 默认情况下&#xff0c;在添加node时&#xff0c;会列出所有的模板&#xff0c;这样用着很不方便。 通过以下方式&#xff0c;可以使没有设备的模板不可见 cp /opt/unetlab/html/includes/config.php.distribution /opt/unetlab/html/includes/config.php 打开 config…

设计模式之简单工厂模式

一、概述 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。 简单工厂模式&#xff1a;又叫做静态工厂方法模式&#xff0c;是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 1.当一个类不知道它所…

Linux下MongoDB定时异地备份方案

1. 安装crontabs 首先安装crontabs yum install crontabs2. 创建备份目录 [rootlocalhost data]# mkdir -p /data/backup/mongo/mongodb_bak_tmp [rootlocalhost data]# mkdir -p /data/backup/mongo/mongodb_bak_path 3. 创建MongoDB备份shell脚本 有密码&#xff1a; #…

「已解决」iframe 本地生效 但是在测试环境不生效问题

背景 我有一个表格中一列是个详情&#xff0c;这个详情可被点击&#xff0c;点击后弹出抽屉&#xff0c;抽屉里是后端传给我详情字段的值对应的 url 的 iframe 展示。 问题是&#xff0c;在本地 localhost 下运行&#xff0c;ifame 运行正常&#xff0c;但是部署到测试环境就看…

实现UDP可靠性传输

文章目录 1、TCP协议介绍1.1、ARQ协议1.2、停等式1.3、回退n帧1.4、选择性重传1.5、RTT和RTO1.6、流量控制1.7、拥塞控制 1、TCP协议介绍 TCP协议是基于IP协议&#xff0c;面向连接&#xff0c;可靠基于字节流的传输层协议 1、基于IP协议&#xff1a;TCP协议是基于IP协议之上传…

LeetCode.26,27,88三题-双指针的运用

本文将对3道解决方法类似的题目进行逐一分析&#xff0c;这三道题目分别是&#xff1a; LeetCode.26 删除有序数组中的重复项 LeetCode.27 移除元素 LeetCode.88 合并两个有序数组 1. LeetCode.27 移除元素&#xff1a; 题目内容如下&#xff1a; 假设一个数组为&#xff1…