首页 > 其他分享 >自动修改网卡 IP

自动修改网卡 IP

时间:2024-01-19 16:56:25浏览次数:21  
标签:IP 手动 网卡 修改 注册表 DHCP

1. 讲个故事

    我的一同事需要调试 PLC,需要经常修改电脑 IP 在各个工位的 PLC 间来回连接。于是,每次需要改变 IP 的时候都是手动点开网络管理界面然后再修改。终于有一天,一天改 80 次 IP 的他开始开始抱怨,手动修改 IP 真 TM 麻烦。于是我就想了个办法怎么来偷懒解决这个问题。

2. 开始动手

    因为常用的是C#,从 win32 API 获取网卡 IP 的接口直接封装没多大问题,一通折腾,发现很是麻烦。但是查找 API 的时候找一个更好的办法,.net 里提供了相应的包 System.Net.NetworkInformation ,直接引用就好了。这里省了不少事。于是开始获取本机全部网卡,读取 IP 等信息。监听 IP 变化事件。一个小 DEMO 就这样跑起来了。

 

但是如何设置 IP 呢,API 里也没有对应的函数可以调用(如果谁知道是哪个可以小小声告诉我),网上有两种办法一种是通过 WMI, 一种是使用 shell 命令,我选择了第二种,使用 netsh 命令来设置 IP。小陀螺转起来吧。

 

3. 水面下的冰山

    就在踌躇满志,以为大功告成之际发现一个不大不小的问题。在网卡原本是 DHCP 状态是,修改成手动设置 IP 的过程中没有任何问题。但是当切回 DHCP 时,打开系统提供的 IP 设置界面,里面还是显示 手动设置的 IP ,不会切回到“自动获取 IP”。就是下面这个界面。

不会切回上面这个状态。

那么接下来怎么办呢?思考了很久,也没有好的办法,想到前人的程序很多都是通过注册表获取 IP 的。于是试着看看注册表里会不会有新的发现。

打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ ,

找到对应的网卡,里面有不少项目,当然也包括 IP 地址。

其中在从 DHCP 切换为手动设置 IP 时,注册表里会多出一个项目“DisableDhcpOnConnect” ,用来表示下一次网卡连接时关闭 DHCP。试着手动删除这个项目,删除之后系统里的自动获取 IP 也就切回去了,终于找到真神了。

4. 总结

    解决问题,多看多思考,细节决定成败。全文完。

软件下载地址:

链接:https://pan.baidu.com/s/1pp3Je7mMy_rO97fu0RLVjQ?pwd=ne7i
提取码:ne7i

 

如果你觉得这个软件对你有用还可以打赏,打赏用户将会列入打赏榜单。也接受定制服务。

标签:IP,手动,网卡,修改,注册表,DHCP
From: https://www.cnblogs.com/flysun027/p/17975051

相关文章

  • sd-wan跨境专线ip是固定的吗?
    SD-WAN(软件定义广域网)是一种网络技术,它可以通过集中的管理和控制来提供更好的网络性能和可靠性。跨境专线是指连接不同国家之间的网络连接。固定IP是指在网络中分配给特定设备的永久性IP地址,与动态IP(每次连接都可能变化的临时IP地址)相对。在使用SD-WAN跨境专线时,固定IP具有以......
  • 修改PADS的层数(4改2)
    今天把4层板改为2层板,首先把需要删除的层上的东西全部删除干净(过孔、铜箔、走线等),我先试把内层走线全部在外层走完,再把内层覆铜框删除,就可以了,这时候进入层设置,修改电气层数,发现就可以4改2了,如下图点击确定,就完成更改了。......
  • 洛谷题单指南-模拟和高精度-P1098 [NOIP2007 提高组] 字符串的展开
    原题链接:https://www.luogu.com.cn/problem/P1098题意解读:题目本身是一道模拟题,但是细节点较多,要拿100分,有以下注意点:1、-号两个需要同时为小写字母或者数字,才进行填充2、-号左边>=右边,直接输出-3、对待填充的内容的处理,可以先看是否填充*;小写字母和数字的填充都是前一位asci......
  • 修改文件夹下文件的时间戳
     可以使用 touch 命令的-t选项来设置特定的时间戳。以下是更新时间戳为2022年11月11日11点11分的脚本示例:#!/bin/bash#进入包含文件的目录cd/你的目录路径#更新所有文件和文件夹的时间戳find.-exectouch-t202211111111{}\;命令解析:find. :表示在当前目录......
  • NOIP2023题解
    目录NOIP2023T1词典(dict)T2三值逻辑(tribool)T3双序列拓展(expand)T4天天爱打卡(run)NOIP2023T1词典(dict)考察:贪心题解Link题目传送门首先任意多次操作本质就是随意排序,所以如果要使\(w_i\)最小,我们一定会使\(w_i\)从\(a\)到\(z\)排,其它都\(z\)到\(a\)排......
  • SOLIDWORKS插件SolidKits.BOMs工具之属性修改
    SOLIDWORKS模型的属性信息可以写在自定义属性中,也可以写在配置特定属性中,这些我们在制作SOLIDWORKS模板的时候就已经定义好了,如果随着企业的发展,属性名做了调整,就可以使用SOLIDWORKS属性修改插件-SolidKits.BOMs工具来批量完成属性名的修改,比如将代号改为图号,将备注属性删除等操作......
  • 洛谷题单指南-模拟和高精度-P1067 [NOIP2009 普及组] 多项式输出
    原题链接:https://www.luogu.com.cn/problem/P1067题意解读:模拟法依次输出多项式内容即可,但是需要考虑的周全,主要有以下关键点:1、系数为0时不输出多项式2、第一个符号,只有负号才输出3、次数不为0时,不输出为1的系数;次数为0时,输出所有系数4、次数为1时,不输出次数;次数为0时不输......
  • Adb命令修改多媒体音量
    Adb命令修改多媒体音量1、查看audio的全部信息(各音频流音量,焦点,策略等)dumpsysaudio2、设置音量并且显示音量UI//stream3表示多媒体,10表示音量值mediavolume--show--stream3--set103、音量调大调小mediavolume--stream3--adjraisemediavolume--stream......
  • 深入理解JavaScript堆栈、事件循环、执行上下文、作用域以及闭包
    合集-JavaScript进阶系列(5) 1.JavaScriptthis绑定详解01-092.JavaScriptapply、call、bind函数详解01-093.JavaScriptforEach方法跳出循环01-024.深入理解JavaScript堆栈、事件循环、执行上下文和作用域以及闭包01-105.JavaScript到底应不应该加分号?JavaScript自......
  • Kafka 社区KIP-405中文译文(分层存储)
    原文链接:https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage译者:KafkaKIP-405是一篇非常优秀的多层存储的设计稿,不过此设计稿涉及内容很多,文章量大、严谨、知识点诸多。我们国内还没有对其有相对完整的译文,面对如此上乘的文章,译者想降低其......