一、测试 1、手动修改IP 2、自动获取IP 二、测试平台 操作系统:Windows7 开发工具:VisualStudio2022三、主要代码 1、获取网卡privatevoidInitalNetworkInterfaceName(){NetworkInterface〔〕adaptersNetworkInterface。GetAllNetworkInterfaces();foreach(varadapterinadapters){添加网卡中的以太网或无线网络类型if(adapter。NetworkInterfaceTypeNetworkInterfaceType。Ethernetadapter。NetworkInterfaceTypeNetworkInterfaceType。Wireless80211)Adapter。Items。Add(adapter。Description);}} 使用了NetworkInterface类,获得一个包含网卡各种属性的数组,包括:Description、Id、Name、NetworkInterfaceType、Speed等。 将代码中Description改为Name后 2、读取IPprivatevoidAdapterSelectedIndexChanged(objectsender,EventArgse){网卡选择改变,刷新IP数据NetworkInterface〔〕adaptersNetworkInterface。GetAllNetworkInterfaces();foreach(varadapterinadapters){if(adapter。Description(string)Adapter。SelectedItem){GateWay。Text;刷新前先清除IP。Text;MaskCode。Text;DNS1。Text;DNS2。Text;variPadapter。GetIPProperties();intgateWayNumiP。GatewayAddresses。Count;网关(自动1,手动设1,手动不设0)varipcollectioniP。UnicastAddresses;IP和子网掩码intdnsCountiP。DnsAddresses。Count;DNS(自动1,手动设两个2,手动设一个1,手动不设3)if(gateWayNum0)GateWay。Text不存在!;while(gateWayNum0)GateWay。TextiP。GatewayAddresses〔gateWayNum〕。Address。ToString();foreach(variteminipcollection){if(item。Address。AddressFamilyAddressFamily。InterNetwork){IPV4过滤IP。Textitem。Address。ToString();显示IPMaskCode。Textitem。IPv4Mask。ToString();显示子网掩码}}if(0dnsCountdnsCount3){DNS1。TextiP。DnsAddresses〔0〕。ToString();显示DNS1if(dnsCount1)DNS2。TextiP。DnsAddresses〔1〕。ToString();显示DNS2elseDNS2。Text不存在!;}else{DNS1。Text不存在!;DNS2。Text不存在!;}}}} 3、手动修改IPprivatevoidModifyClick(objectsender,EventArgse){ManagementClassmcnewManagementClass(Win32NetworkAdapterConfiguration);ManagementObjectCollectionmocmc。GetInstances();foreach(ManagementObjectmoinmoc){if(!(bool)mo〔IPEnabled〕)网卡未启用则不能修改continue;if(mo〔Description〕。ToString()(string)Adapter。SelectedItem){if(IP。Text!null)IP设置{ManagementBaseObjectnewIPmo。GetMethodParameters(EnableStatic);newIP〔IPAddress〕newstring〔〕{IP。Text};newIP〔SubnetMask〕newstring〔〕{MaskCode。Text};mo。InvokeMethod(EnableStatic,newIP,null);}if(GateWay。Text!null)网关设置{ManagementBaseObjectnewGatewaymo。GetMethodParameters(SetGateways);newGateway〔DefaultIPGateway〕newstring〔〕{GateWay。Text};mo。InvokeMethod(SetGateways,newGateway,null);}if(DNS1。Text!null)DNS设置{ManagementBaseObjectnewDNSmo。GetMethodParameters(SetDNSServerSearchOrder);string〔〕dnsnewstring〔〕{DNS1。Text,DNS2。Text};newDNS〔DNSServerSearchOrder〕dns;mo。InvokeMethod(SetDNSServerSearchOrder,newDNS,null);}MessageBox。Show(适配器设置完成!,提示:);break;}}} 使用了ManagementClass类的GetInstances()方法,获取网卡所有实例。 4、自动获取IPprivatevoidAutogetClick(objectsender,EventArgse){自动获取IPManagementClassmcnewManagementClass(Win32NetworkAdapterConfiguration);ManagementObjectCollectionmocmc。GetInstances();foreach(ManagementObjectmoinmoc){if(!(bool)mo〔IPEnabled〕)continue;if(mo〔Description〕。ToString()(string)Adapter。SelectedItem){mo。InvokeMethod(SetDNSServerSearchOrder,null);重置DNSmo。InvokeMethod(EnableDHCP,null);开启DHCPMessageBox。Show(已设置为自动获取IP!,提示:);break;}}} 5、自动输入掩码privatevoidMaskCodeClick(objectsender,EventArgse){if(string。IsNullOrEmpty(MaskCode。Text))MaskCode。Text255。255。255。0;}四、完整程序 链接:https:pan。baidu。coms1BOB3fjDvW8gtdVNHx8grQ?pwd7777 提取码:7777五、参考文章https:www。jb51。netarticle67937。htmhttps:blog。csdn。netasdcsjarticledetails49961967https:blog。csdn。netqq42766764articledetails122730101 本文例程功能简略,多有不足之处,仅供参考。