将来的你
一定会感谢现在拼命努力的自己

Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性

在之前的工作中,由于分区域管理,TCP 设置有差异,所以编写过很多关于 IP 切换的脚本,作为大批量电脑维护的脚本,最重要的就是兼容性,可不能就测试的那几台电脑通过了,然后发布给同事使用的时候,出现各种状况!

其中比较难解决的问题就是获取网络连线的实际名称,大部分人使用的 IP 设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地连接;比如有的用户电脑可能升级了网卡驱动,或者更换了网卡,导致网络连线的名称变成“本地连接 2”,又比如有无聊好事者(某产线的作业员电脑),将网络连线的名称各种 DIY,我就见过一个修改成"操蛋的青春",瞬间无语!

好了,废话不多说,直接上菜!


对于网络连线的实际名称,可能出现的情况有:
1.网卡更换/驱动升级导致名称变更,比如本地连接 2
2.系统语系不同导致网络连线名称也不同,比如简体叫【本地连线】,而繁体却叫【區域連線】
3.系统版本不同,导致命令行显示也不同,比如 ipconfig/all,简体 XP 中显示为【Ethernet adapter 本地连接:】,而简体 WIN7 显示却是【以太网适配器 本地连接:】
4.其他不可预料的问题

Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性   Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性

那如果要编写一个通用的 IP 修改脚本,必须就得考虑到以上 1-3 条的问题,才能提高兼容性,接近版本/简繁语系通吃!(英文版暂未考虑)
(PS:以下代码只为说明获取名称,其他一切从简展示):

一、先给出一个 XP 下简繁体通用的获取连线名称的代码

简单说明:此代码通过 ipconfig/all 获取连线信息,然后抓取 Ethernet adapter 之后的名称,即%%k 为实际连线名称,理论上简繁体通用。

代码缺点:
1.不兼容 WIN7,win7 使用 ipconfig/all 后,得到的是【乙太網路卡 區域連線:】
2.本地超过一块网卡的时候应该会出错(具体未实测)
适用场合:在保证单网卡和 XP 环境下可用不区分简繁体使用。


二、来个 XP/WIN7/简繁体通吃的连线名称获取代码(最近才帮维护人员写的,热乎着呢!):

简单说明:通过 netsh 获取信息,能兼容 XP 和 WIN7;然后通过【介面】还是【接口】的区分,又能兼容简繁体,所以是通吃代码!

代码缺点:暂未实现多网卡的区分功能,所以双/多网卡电脑执行此脚本,所有网卡均设置成一样的信息,这很蛋疼!
适用范围:只要不存在多网卡,均能使用!多网卡慎用哦~!


三、最后,再给个 XP 环境下加入了多网卡判断的获取连线名称的脚本吧!

Ps:或许有筒子可以参考做出全兼容的脚本呢!(俺时间太紧,就不折腾啦)

简单说明:在代码一的基础上加上了网卡数量的判断,超过一块就提示手动设置,避免因多块网卡设置 IP 出现问题。

代码缺点:

1.还是未能解决多块网卡自动设置 IP 的情况,请有兴趣的筒子参考改进哦!
2.无法兼容 WIN7

好了,以上就是获取实际网络连线名称的所有代码了,希望能帮到有需要的朋友!

赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@3yyy.top。文章观点不代表本站立场。本站原创内容未经允许不得转载:三叶运维 » Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏