kn007的个人博客
♥ You are here: Home > 软件与网络 > Autoit3 > IP 地址修改器 5.0 重制版

IP 地址修改器 5.0 重制版

by | 69 Comments

做了个小工具,IP 地址修改器。

准确说,其实是重制了10年前的“IP 地址修改器”。。。

之前最后一个版本更新,是2.0最终版,在09年发布。

重制有几个原因,首先是不支持Win 10;其次,一些Bug和年轻时的中二等也导致了这次重制。

重制后,已在Win XP、Win 7、Win 10、Server 2003、Server 2008下测试通过。欢迎测试。

重制原因,主要是因为工作上,调试网络时会换不同的IP,有工具快速切换会舒服很多。

现在为了方便管理,一个地方会有几十个VLAN,调试时,不断切换还是很累人的。

程序主要原理还是利用了WMI的Win32_NetworkAdapterWin32_NetworkAdapterConfiguration,还有Netapi32.dll及注册表补充来获取信息,硬件方面用了Setupapi.dll来控制网卡禁启用。

本想用下iphlpapi.dll获取信息的,但测试完,感觉就是个废物。。没什么卵用。

至于MSFT_NetAdapter,因为最低要Win 8或Server 2012就放弃了。看了下,就是信息整合比较好、方法比较多,但还是要配合Win32_NetworkAdapterConfiguration使用。啥时候能有个动态库或好的WMI类单独来管理就好了。。。

新版的配置方案INI放在程序根目录下的“ip.dat”,而非旧版在AppDataDir下。主要是为了方便备份,做了这个改变。另外也加强GUI对配置文件的管理。

注意,“高级配置”选项中,在没有方案的情况下,也可以应用“待应用的配置信息”的所设配置。MAC地址留空且勾上修改,会执行恢复网卡原有MAC地址。

有其他疑问,欢迎留言。文件下载见文章末尾。

5.0.0.0程序图,大概如下:

5.0.3.0图片如下:

新版5.0.4.0新增功能图片如下:

旧版图片如下:

旧版方案还有错别字,可够丢人的。。。

文件: IP地址修改器.exe
大小: 582344 字节
文件版本: 5.0.4.6
修改时间: 2020年7月4日, 22:35:05
MD5: AD1F753537606A0CF2957419C7E846F3
SHA1: CE211DB5D06416A085DC6878389C5CF72499F6B4
CRC32: 156EC2A8

关于病毒的问题,这是检测报告

我还是那句话,只有辣鸡杀软,才会报毒。Autoit会被误报已是常事。

更新历史:
IPTools 5.0.4.6:
修复在XP下无法使用问题

IPTools 5.0.4.5:
1.完善逻辑
2.优化前端显示,优先使用“微软雅黑”

IPTools 5.0.4.4:
修复一个错误

IPTools 5.0.4.3:
1.修复前端显示逻辑错误
2.优化代码,对C网群ping器的ICMP发包注入方式做优化
3.精简部分代码,修改部分逻辑

IPTools 5.0.4.2:
1.优化代码
2.修复一个错误

IPTools 5.0.4.1:
C网群ping器增加ICMP方式

IPTools 5.0.4.0:
1.优化逻辑
2.修复子界面图标错误
3.新增工具箱功能(实验性),在主界面中通过快捷键F8打开
4.工具箱新增应用:C网群ping器(基于ARP)
5.工具箱新增应用:子网掩码计算器

IPTools 5.0.3.6:
优化部分逻辑

IPTools 5.0.3.5:
1.修复一个bug
2.精简部分代码

IPTools 5.0.3.4:
1.修复逻辑bug
2.完善执行逻辑(如新增对IP检测是否被其他网卡占用)
3.子网掩码根据IP地址范围自动填表

IPTools 5.0.3.3:
1.修复XP下部分图标不显示问题
2.压缩程序大小

IPTools 5.0.3.2:
1.修复逻辑错误(且修复潜在导致蓝屏的Bug)
2.图标内置(不再从系统DLL读取)

IPTools 5.0.3.1:
1.更改IP后,延迟获取网卡信息(之前版本获取过快,可能会得到空或169开头的ip地址)
2.更改打包方式(降低杀软敏感度)

IPTools 5.0.3.0:
1.改原有“高级配置”为“导入配置”,功能不变
2.添加全新“高级选项”(实验性),增加一些进阶功能,包括但不限于单网卡多IP设置
3.优化部分逻辑
4.修复一些Bug

IPTools 5.0.2.5:
1.修复部分逻辑
2.合并刷新数据功能(“刷新列表”与“刷新当前配置”合二为一)

IPTools 5.0.2.4:
1.添加“F1”弹出帮助提示
2.添加“F12”弹出控制面板中“网络链接”窗口功能
3.增加最小化窗口功能
4.主界面右下角状态栏,可双击后访问软件发布页

IPTools 5.0.2.3:
修复一个错误

IPTools 5.0.2.2:
方案配置页面中,列表中双击方案,应用选中的方案配置

IPTools 5.0.2.1:
优化代码

IPTools 5.0.2.0:
方案配置页面中,新增快捷键“F6”应用选中的方案配置

IPTools 5.0.1.2:
修复一些Bug

IPTools 5.0.1.1:
优化代码

IPTools 5.0.1.0:
1.新增代码签名证书
2.新增“读取当前配置并保存为新方案”功能

IPTools 5.0.0.0:
1.重构2.0代码,重写代码逻辑,兼容性更强
2.新增计算机名、工作组、MAC地址修改
3.新增网卡禁启用功能按钮
4.修改UI,简洁化
5.合理化方案配置管理

喜欢的小伙伴,可以选择赞助我。

转载请注明转自:kn007的个人博客的《IP 地址修改器 5.0 重制版

donate
有所帮助?

Comments

69 Comments立即评论
  1. 回复

    an uahandled exception qccurred win10打开出现异常

    1. MOD回复

      @风囧: 不适用精简版系统

    2. 回复

      @kn007: 我是win10专业版的

    3. MOD回复

      @风囧: 系统有没有被精简还是是母盘正常安装的?
      你查看下系统wmi服务是否正常。
      是一打开就错误,还是在执行什么的时候错误?

  2. 回复

    请问可以修改随身WiFi发射器的MAC地址吗,那样的话真的太棒了,或者有可以修改mac地址的随身WiFi吗,可收费,公司刷脸用,微80812698 ;-)

    1. MOD回复

      @粉丝: 软件上的MAC更改,需要网卡支持。具体可以参加F1说明。
      至于随身wifi,建议你买支持修改的。。

  3. 回复

    为什么下载下来是txt文本 :sad:

    1. MOD回复

      @海风: 请使用浏览器下载 :x

    2. 回复

      @kn007: 下载好了。谢谢大佬,顺便问一下这个能突破公司网络不能玩游戏的限制吗 :smile:

    3. MOD回复

      @海风: 那要看你们公司网管怎么做策略,还有就是用什么做。。。

    4. 回复

      @kn007: 打开4399 提示的策略是 限制游戏 :roll:

    5. MOD回复

      @海风: 深信服?那没办法。

  4. 回复

    您好!我最近在练习制作一个ip小工具,但是遇到了问题:
    在一个没有插入网线的物理网卡上,我使用Win32_NetworkAdapterConfiguration设置ip为静态后,查询到的EnableDHCP属性仍然为true,但是使用您的工具设置后,就会变为false,想请教您使用了什么方法,使得EnableDHCP及时得到了更新?如果您能抽空给与帮助指点,不胜感激,谢谢!
    另外您设置ip只用到了Win32_NetworkAdapterConfiguration一个方法吗?
    期待您的回复,再次感谢~

    1. MOD回复

      @mk_cs: 首先,感谢你的赞助。

      关于WMI使用了什么,我文章写得很清楚(其实软件都用了哪些方法,其实文章都写了)。

      设置ip的话wmi的话,只使用了Win32_NetworkAdapterConfiguration这一个方法,没错。
      但wmi有个问题,需要网卡在线,不在线他会有坑。不在线的话,你需要使用netsh相辅。
      至于为什么不直接用netsh,因为太慢,如果网卡在线,甚至会卡着不动,这时候就需要wmi了。
      所以必须要要判断。

      至于EnableDHCP,做完动作,写下注册表就好了。因为win需要网卡连接状态(非普通状态)更新后,才会更新这个值。

      关于注册表改ip设置,在win7前,你都可以通过操作注册表来完成,之后,你跟以前一样操作注册表,会导致设置乱掉。所以如果喜欢改注册表要注意了,非常多的坑。

      再次感谢赞助,另外博客的留言中,网址可以留空,不用写“无”。。

      其实归根结底,还是历史遗留问题,导致ms的api太多缺陷了。这漏那漏的。。。

    2. 回复

      @kn007: 非常感谢您耐心的回复和指点!
      我把我理解的说一下,您看看我理解的是否有误,谢谢!
      一是先判断网卡是否在线,如果在线,就用wmi,如果不在线,用NetSH
      二是如果用NetSH,做完动作(置为静态ip)要修改下注册表,把EnableDHCP这个值手动置为0
      还有两点疑问:
      一是如何判断NetSH已执行完毕?因为我发现设置dns时会消耗比较长的时间
      二是如何判断NetSH是否执行成功了,以免静态ip设置失败后仍错误的将EnableDHCP注册表值置为0?

      因为我水平有限,经历了几个晚上的百度,还是没有解决这个问题,所以才冒昧的来求教,感谢您的不吝赐教,祝您身体健康!事事顺利!

    3. MOD回复

      @mk_cs: 我意思,你做在同个函数里边。我现在就是,也可以按功能拆分下函数,这个按个人习惯。
      然后EnableDHCP,像我,是直接最后写入注册表,按照动作给1或0。
      网卡不在线的时候,netsh是很快的,如果你设置dns为自动的话。
      如果你说手动慢,那是因为你没有去看msdn,netsh interface这个动作设置dns,是会检查dns是否存在和正常的,你需要加个validate参数,让他直接执行而不检测。这样就快。
      很可惜的是netsh,正常来说是无法失败的,他的机制。。。当然为了保险,你可以再读一次网卡数据来做保证(我是判断任务超时)。

    4. MOD回复

      @mk_cs: 我为什么提到任务超时。。。
      主要是总有些人很无聊,要么不按规定写ip,要么是拿其他工具篡改你的编辑框数据,导致成功传参给函数,这个时候任务是会失败的,而且很多时候,会卡住不动。。所以做了个超时判定

    5. 回复

      @kn007: 谢谢!我想我明白基本思路了。
      我编程经验少,也还没有养成常看MSDN的习惯,所以很多问题没有自己解决。
      再次感谢您的指教!

  5. 回复

    大神,因为工作原因,我需要国内各个区域切换IP,请问您这个软件能实现吗? ;-)

  6. 回复

    Setupapi.dll来控制网卡禁启用 的代码能贴一下吗?谢谢。

  7. 回复

    都重做了,加些新功能吧,把电脑硬件资产管理记录也整合进去呗,做成服务端跟客户端那样的,在修改IP的同时也收集一下硬件信息,如果能再加个开机通道,就更好了。

    1. MOD回复

      @8381503: :sad: 你在哪个单位的
      免费项目,随心

    2. 回复

      @kn007: 以前在网吧工作的时候有用过你之前写的版本,现在在小企业里混口饭吃,最近要一台一台重新规划一下网络并登记一下硬件,就看到你这里有更新了。

  8. 回复

    默认选择的网卡可以是第一个启用的网卡...

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif