• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#实现网卡IP地址自由切换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

需求:笔记本经常要在不同的地点连接网络,而各地的网络IP配置各不相同,这就导致不时的更改网卡的IP地址设置。Windows上更改IP设置很不方便,于是希望能够开发一款能够适用于不同网络,不同网卡的快速IP地址切换程序。

分析:关键在于如何实现对网络适配器的配置。其实,MS为我们提供了System.Management 命名空间下的ManagementClass类,通过它我们可以获取和设置电脑上所有适配器的信息。其次,就是要实现对配置信息的存储,这个就简单了,可以通过将网卡信息序列化后保存到文件中,然后经反序列化取出。

实现:解决了上面两个问题,一切就简单了。那就让我们开始吧,最终效果如图:(下载地址

这里我们着重了解一下ManagementClass类吧:它表示公共信息模型 (CIM) 管理类。管理类是一个 WMI 类,如 Win32_LogicalDisk 和 Win32_Process,前者表示磁盘驱动器,后者表示进程(如 Notepad.exe),那么网络适配器就是 Win32_NetworkAdapterConfiguration 。关于Win32_NetworkAdapterConfiguration类的更多信息(如它具有的属性和方法),可以参考MSDN上的相关说明。

            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();

这样就轻松获得了电脑上所有网卡的实例了。一个WMI的实例我们可以用ManagementObject来表示。我们通过调用实例的InvokeMethod方法,来对相应的网卡IP进行配置。如:

            networkAdapter.InvokeMethod("EnableDHCP", null, null);//通过调用Win32_NetworkAdapterConfiguration类的EnableDHCP方法,设置网卡实例networkAdapter为自动获得IP地址(即开启DHCP功能)

    ManagementBaseObject parIPSetting = networkAdapter.GetMethodParameters("EnableStatic");//对于有参数的Win32_NetworkAdapterConfiguration类的方法,得先用GetMethodParameters方法来获得参数对象,然后再给参数赋值。
    parIPSetting["IPAddress"] = new string[] {ipAddress};
    parIPSetting["SubnetMask"] = new string[] {subnetMask};
    networkAdapter.InvokeMethod("EnableStatic", parIPSetting, null);//这是一个设置IP地址及子网掩码的例子

有了上面的介绍类似的,我相信,只要是用心的人就可以通过MSDN上对Win32_NetworkAdapterConfiguration类字段与方法的说明,就可以很快完成其余的相关网卡的默认网关及DNS服务器等项目的配置了。

《完》


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# txt格式记录时间,时间对比,决定是否更新代码记录Demo发布时间:2022-07-14
下一篇:
C#App.config配置文件的讲解发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap