2023年11月27日发(作者:)
使用易语言快速开发IP修改工具
冯立彬
(阳光学院教务处,福州350100)
摘要院IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配
一个逻辑地址,以此来屏蔽物理地址的差异。随着科技的发展、人类的进步、电脑的普及率日益提高,
电脑彻底改变了人们的工作与思考形态,无论现在的个人家庭还是用人单位,电脑几乎是人手一台,
但随之而来的问题也会出现,比如,有时由于设置不当会出现IP地址冲突情况,直接导致被提示IP地
址冲突的计算。
关键词院易语言;IP修改;API接口
易语言是一门以中文作为程序代码编程语言袁其
以野易冶著称袁创始人为吴涛遥作为中国人自己的语
言袁易语言方便中国人用自己的思维去编写程序袁也
大大降低了中国人对编程门槛遥利用易语言来开发
IP修改小工具袁达到生活中电脑用户因为IP冲突而
不能联网的烦恼袁以及方便电脑初学者能快速修改本
地IP遥
RegQueryValueExA整数型取注册表项
库文件名院
DLl命令名返回值类型公开备注
表2取注册表项命令
在库中对应命令名院
RegQueryValueExA
参数名类型传地数组备注
lpValueName文本型
lpReserved整数型
lpType整数型姨
lpData字节集姨
hKey整数型
整数型姨lpcbData
1原理分析
注册表在Windows操作系统中有着至关重要的作
用袁先通过API遍历注册表内读取网卡的信息袁再通过
API对注册表进行修改遥从而达到修改的目的遥
2编写过程
通过DLL的API接口对注册表项进行操作遥
打开注册表项DLL命令如表1所示遥
表1打开注册表项命令
公开备注DLl命令名返回值类型
打开注册表项RegOpenKeyExA整数型
写注册表DLL命令如表3所示遥
表3写注册表项命令
RegSetValueExA整数型写注册表项
库文件名院
DLl命令名返回值类型公开备注
库文件名院
在库中对应命令名院
在库中对应命令名院
RegOpenKeyExA
参数名类型传地数组备注
hKey整数型
文本型lpSubKey
整数型ulOptions
整数型samDesired
整数型姨phkResult
RegSetValueExA
参数名类型传地数组备注
lpValueName文本型
Reserved整数型
dwType整数型
cbData整数型
lpData字节集姨
hKey整数型
作者简介:冯立彬渊1990-冤袁男袁初级职称袁研究方
向院计算机网络遥
2021.3
取注册表DLL命令如表2所示遥
3
关闭注册表项DLL命令如表4所示遥
表4关闭注册表项命令
RegCloseKey整数型关闭注册项
DLl命令名返回值类型公开备注
库文件名院
在库中对应命令名院
RegCloseKey
参数名类型传地数组备注
hKey整数型
运用RegOpenKeyExA袁RegQueryValueExA袁RegCl-
oseKey这3个DLL建立子程序对注册表项进行读取代码遥
-揖关闭注册表铱将该信息用于程序调用袁如表5所示遥
API_读注册表院揖打开注册表铱-揖读取注册表铱
表5API_读注册表定义
子程序名返回值类型公开易包备注
API_读注册表文本型
参数名类型参数可空数组备注
读取位置文本型
读取项目文本型
变量名类型静态数组备注
句柄
类型
数据字节集
长度
文本文本型
RegOpenKeyExA(-2147483646,读取位置,0,1,
句柄)'打开注册表
.如果真(句柄屹0)'判断时候打开
数据越到字节集(取空白文本(255))
RegQueryValueExA(句柄,读取项目,0,类型,数据,
长度)'读注册表信息
RegQueryValueExA(句柄,读取项目,0,类型,数据,
长度)
数据越子字节集替换(数据,{0},{13,10},,)
文本越取文本左边(到文本(数据),长度)
RegCloseKey(句柄)'关闭注册表
.如果真结束
返回(文本)
运用RegOpenKeyExA袁RegSetValueExA袁RegClose
Key这3个DLL建立子程序对注册表项进行写入代码遥
API_写注册表院揖打开注册表铱-揖写入注册表铱
4
2021.3
-揖关闭注册表铱将该信息用于程序调用袁如表6所示遥
表6API_写注册表定义
子程序名返回值类型公开易包备注
API_写注册表文本型
参数名类型参数可空数组备注
写入位置文本型
写入项目文本型
写入内容文本型
变量名类型静态数组备注
临时字节集
句柄
数据文本型
RegOpenKeyExA(-2147483646,写入位置,0,2,
句柄)'打开注册表
.如果真(句柄屹0)
临时越子字节集替换(到字节集(写入内容),{13,10
},{0},,)'写入内容转换为字节集并替换
RegSetValueExA(句柄,写入项目,0,7,临时垣{0,
0},取文本长度(写入内容))'写入注册表
RegCloseKey(句柄)'关闭注册表
通过注册表内网卡的固定位址获取到网卡所有信
息袁如表7所示遥
表7取网卡信息定义
子程序名返回值类型公开易包备注
取网卡信息
变量名类型静态数组备注
ID整数型
注册地址文本型3
网卡信息详细参数
注册地址[1]越野SYSTEMCurrentControlSetCon鄄
trolClass{4D36E972-E325-11CE-BFC
1-08002bE10318}冶
注册地址[2]越野SYSTEMCurrentControlSetCon鄄
trolNetwork{4D36E972-E325-11CE-BFC
1-08002BE10318}冶
注册地址[3]越野SYSTEMCurrentControlSetSer鄄
vicesTcpipParametersInterfaces冶
清除数组(网卡参数)
网卡选择框.清空()
ID越0
.判断循环首(注册项是否存在(4,注册地址[1]垣Server冶,)
取重复文本(4原取文本长度(到文本(ID)),野0冶)垣到文网卡信息.跃点数值越API_读注册表(注册
本(ID)垣野LinkageUpperBind冶))地址[3]垣网卡信息.适配器名,野DefaultGatewayMet鄄
.如果真(取文本注册项(4,注册地址[1]垣取重复文ric冶)
本(4原取文本长度(到文本(ID)),野0冶)垣到文本(ID)垣网卡信息.网卡状态越野通过DHCP指派冶
野NdiInterfacesLowerRange冶,)越野ethernet冶).如果真结束
网卡信息.网卡名称越取文本注册项(4,注册地址处理事件()
[1]垣取重复文本(4原取文本长度(到文本(ID)),野0冶)垣
到文本(ID)垣野DriverDesc冶,)加入成员(网卡参数,网卡信息)
网卡信息.适配器名越取文本注册项(4,注册地址
[1]垣取重复文本(4原取文本长度(到文本(ID)),野0冶)垣.如果真结束
到文本(ID)垣野NetCfgInstanceId冶,)
网卡信息.适配器ID越取文本注册项(4,注册地
址[1]垣取重复文本(4原取文本长度(到文本(ID)),
野0冶)垣到文本(ID)垣野MatchingDeviceId冶,)
.如果真(网卡是否存在(网卡信息.适配器名)越真).如果真结束
网卡信息.本地连接越取文本注册项(4,注册地址网卡选择框.现行选中项越0
[2]垣网卡信息.适配器名垣野ConnectionName冶,)
网卡信息.物理地址越取物理地址(网卡信息.网卡名称)
.如果真(取数值注册项(4,注册地址[3]垣网
卡信息.适配器名垣野EnableDHCP冶,)越0)
网卡信息.网卡地址越API_读注册表(注册
地址[3]垣网卡信息.适配器名,野IPAddress冶)
网卡信息.子网掩码越API_读注册表(注册
地址[3]垣网卡信息.适配器名,野SubnetMask冶)
网卡信息.默认网关越API_读注册表(注册
地址[3]垣网卡信息.适配器名,野DefaultGateway冶)
网卡信息.DNS地址越API_读注册表(4,
注册地址[3]垣网卡信息.适配器名垣野NameServer冶,)
网卡信息.跃点数值越API_读注册表(注册
地址[3]垣网卡信息.适配器名,野DefaultGatewayMet鄄
ric冶)
网卡信息.网卡状态越野手动配置冶
.如果真结束
.如果真(取数值注册项(4,注册地址[3]垣网
卡信息.适配器名垣野EnableDHCP冶,)越1)
网卡信息.网卡地址越取文本注册项(4,注册地
址[3]垣网卡信息.适配器名垣野DhcpIPAddress冶,)
网卡信息.子网掩码越取文本注册项(4,注
册地址[3]垣网卡信息.适配器名垣野DhcpSubnet鄄
Mask冶,)
网卡信息.默认网关越API_读注册表(注册
地址[3]垣网卡信息.适配器名,野DhcpDefaultGate鄄
way冶)
网卡信息.DNS地址越API_读注册表(4,
注册地址[3]垣网卡信息.适配器名垣野DhcpName鄄
网卡选择框.加入项目(网卡信息.网卡名称,)
.如果真结束
ID越ID垣1
.判断循环尾()
.如果真(网卡选择框.取项目数()越0)
网卡选择框.加入项目(野未发现网卡信息冶,)
处理事件()
将要修改的网卡参数信息写入到注册表项内袁如表
8所示遥
表8写入参数信息定义
子程序名返回值类型公开易包备注
写入参数信息
变量名类型静态数组备注
临时地址文本型
临时掩码文本型
临时网关文本型
临时DNS文本型
I整数型
连续赋值(野冶,临时地址,临时掩码,临时网关,临时
跃点,临时DNS)
全局变量参数()
处理事件()
.计次循环首(取数组成员数(网卡地址),i)
临时地址越临时地址垣网卡地址[i].参数一垣#换
行符
临时掩码越临时掩码垣网卡地址[i].参数二垣#换
行符
.计次循环尾()
处理事件()
.计次循环首(取数组成员数(默认网关),i)
临时网关越临时网关垣默认网关[i].参数一垣#换
行符
(下转第10页)
2021.3
5
的指令和数据的存储器管理单元曰32位或36位地址并对处理器选型给予论证袁可以对高性能处理系统的设
线曰64位数据线曰整型数据类型有8尧16和32位曰计提供一定的帮助遥
浮点数据类型有64和128位曰功耗和热管理单元曰性
能监视可以帮助调试系统设计袁提高软件效率袁测试
接口遥盘软件与应用,2013,渊12冤院73-74.
该系列处理器有在线系统测试和调试特性院JTAG
能力遥JTAG接口可以通过相应的硬件工具来测试遥
参考文献
[1]沈华.PowerPC处理器的发展历程[J].计算机光
[2]FreescaleSemiconductorInc.P2020QorIQIntegrated
ProcessorReferenceManual[EB/OL].USA院www.
,2011.
4结语
从机载计算机的高可靠性尧高实时性以及高性能的
特点出发袁分析先进的计算机的体系结构应该是一种实
时的尧容错的尧并行的体系结构袁同时分别对机载计算
机的实时系统尧容错系统和并行系统作了详细的论述袁
(上接第5页)
临时跃点越临时跃点垣默认网关[i].参数二垣#换
行符
.计次循环尾()
处理事件()
.计次循环首(取数组成员数(DNS地址),i)
临时DNS越临时DNS垣DNS地址[i]垣野,冶
.计次循环尾()
处理事件()
临时DNS越取文本左边(临时DNS,取文本长度(临时
DNS)原1)
处理事件()
.如果(临时地址越野冶)
API_写注册表(4,注册地址[3]垣网卡参数[网卡索
引].适配器名垣野EnableDHCP冶,1)
API_写注册表(4,注册地址[3]垣网卡参数[网卡索
引].适配器名垣野NameServer冶,野冶)
.否则
API_写注册表(4,注册地址[3]垣网卡参数[网卡索
引].适配器名垣野EnableDHCP冶,0)
API_写注册表(注册地址[3]垣网卡参数[网卡索引].
适配器名,野IPAddress冶,临时地址)
API_写注册表(注册地址[3]垣网卡参数[网卡索引].
适配器名,野SubnetMask冶,临时掩码)
.如果结束
.如果(临时网关越野冶)
删除注册项(4,注册地址[3]垣网卡参数[网卡索引].
适配器名垣野DefaultGateway冶)
[3]FreescaleSemiconductorInc.MPC8641DIntegrated
USA院,2008.
HostProcessorFamilyReferenceManual[EB/OL].
删除注册项(4,注册地址[3]垣网卡参数[网卡索引].
适配器名垣野DefaultGatewayMetric冶)
.否则
API_写注册表(注册地址[3]垣网卡参数[网卡索引].
适配器名,野DefaultGateway冶,临时网关)
API_写注册表(注册地址[3]垣网卡参数[网卡索引].
适配器名,野DefaultGatewayMetric冶,临时跃点)
.如果结束
API_写注册表(4,注册地址[3]垣网卡参数[网卡索引].
适配器名垣野NameServer冶,临时DNS)
3结语
借助互联网的高速发展袁越来越多像IP修改这样
的小工具出现在大家视野中遥各种各样的小工具将复杂
的电脑操作化为简单的操作表现得淋漓尽致袁潜移默
化地影响着人们的生产和生活遥
参考文献
[1]易语言教材编委会.易语言编程系统[M].西安院
西安地图出版社,2005.
[2]王军,何烈胜.汉语编程工具易语言即学即用教程
社,2003.
[M].北京院中国宇航出版社,北京希望电子出版
[3]冉林仓.WindowsAPI编程[M].北京院清华大学
出版社,北京希望电子出版社,2005.
10
2021.3
发布评论