概述
DLL命令表
.版本 2 .DLL命令 Sleep, , "kernel32.dll", "Sleep", 公开 .参数 dwMilliseconds, 整数型
接口程序集
.版本 2 .程序集 接口程序集 .子程序 取网段, 文本型 .参数 IP地址, 文本型 返回 (取文本左边 (IP地址, 倒找文本 (IP地址, “.”, , 假))) .子程序 格式化尾数, 文本型 .参数 文本, 文本型 返回 (文本替换 (“000”, 4 - 取文本长度 (文本), 取文本长度 (文本), 文本)) .子程序 格式化IP, 文本型 .参数 IP地址, 文本型 返回 (取网段 (IP地址) + 格式化尾数 (到文本 (取IP尾数 (IP地址)))) .子程序 取IP尾数, 整数型 .参数 IP地址, 文本型 返回 (到整数 (取文本右边 (IP地址, 取文本长度 (IP地址) - 取文本长度 (取网段 (IP地址))))) .子程序 ipadd, 文本型 .参数 ip, 文本型 .局部变量 ip_arr_str, 文本型, , "4" .局部变量 ip_arr_int, 整数型, , "4" .局部变量 a, 整数型 ip_arr_str = 分割文本 (ip, “.”, ) .计次循环首 (4, a) ip_arr_int [a] = 到整数 (ip_arr_str [a]) .计次循环尾 () ip_arr_int [4] = ip_arr_int [4] + 1 .如果真 (ip_arr_int [4] > 255) ip_arr_int [4] = 0 ip_arr_int [3] = ip_arr_int [3] + 1 .如果真结束 .如果真 (ip_arr_int [3] > 255) ip_arr_int [3] = 0 ip_arr_int [2] = ip_arr_int [2] + 1 .如果真结束 .如果真 (ip_arr_int [2] > 255) ip_arr_int [2] = 0 ip_arr_int [1] = ip_arr_int [1] + 1 .如果真结束 返回 (到文本 (ip_arr_int [1]) + “.” + 到文本 (ip_arr_int [2]) + “.” + 到文本 (ip_arr_int [3]) + “.” + 到文本 (ip_arr_int [4]))
永恒之蓝扫描器的原型,可以扫描出当前局域网内的全部电脑
此功能需要加载超级列表框操作类模块
.版本 2 .支持库 EThread .支持库 sock .支持库 iext2 .支持库 spec .支持库 eAPI .支持库 iext .程序集 窗口程序集_启动窗口 .程序集变量 网段, 文本型 .程序集变量 许可证, 整数型 .程序集变量 线程句柄 .程序集变量 超级列表框操作类, 超级列表框操作类 .程序集变量 列表框信息, 列表框信息, , "0" .程序集变量 工作线程数, 整数型 .子程序 __启动窗口_创建完毕 初始化 () 许可证 = 创建进入许可证 () .子程序 初始化 .局部变量 文本组, 文本型, , "0" 文本组 = 取本机IP () .如果真 (取数组成员数 (文本组) ≥ 1) 网段 = 取网段 (文本组 [1]) IP编辑框_开始.地址 = 网段 + “1” IP编辑框_结束.地址 = 网段 + “255” .如果真结束 超级列表框操作类._初始化类 (超级列表框1.取窗口句柄 ()) .子程序 _按钮_开始扫描_被单击 启动线程 (&扫描主线程, 到整数 (编辑框_线程数.内容), 线程句柄) .子程序 扫描主线程 .参数 线程数, 整数型 .局部变量 bool, 逻辑型 .局部变量 startip, 文本型 .局部变量 stopip, 文本型 .局部变量 address, 整数型 清除数组 (列表框信息) 超级列表框操作类.数据_全部删除 () startip = IP编辑框_开始.地址 stopip = IP编辑框_结束.地址 bool = 真 .判断循环首 (bool) .判断循环首 (工作线程数 ≥ 线程数) Sleep (100) .判断循环尾 () address = 申请内存 (15, ) 写到内存 (startip, address, 15) 启动线程 (&扫描子线程, address, ) 工作线程数 = 工作线程数 + 1 .如果 (startip = stopip) 跳出循环 () .否则 startip = ipadd (startip) .如果结束 .判断循环尾 () .子程序 扫描子线程 .参数 参数, 整数型 .局部变量 time .局部变量 ip, 文本型 .局部变量 局部_列表框信息, 列表框信息 重定义数组 (局部_列表框信息.列标题, 假, 3) ' 带3个列 清除数组 (局部_列表框信息.列图片索引) ' 不使用列图标 ip = 指针到文本 (参数) time = 通信测试 (ip, 到整数 (编辑框_延时.内容)) .判断开始 (time ≠ -1) 局部_列表框信息.图片索引 = 0 局部_列表框信息.标题 = 格式化IP (ip) 局部_列表框信息.列标题 [1] = 取远程机器名 (ip) 局部_列表框信息.列标题 [2] = 取远程网卡物理地址 (ip) 局部_列表框信息.列标题 [3] = 到文本 (time) 进入许可区 (许可证) 状态条1.置文本 (2, “存活主机数:” + 到文本 (超级列表框1.取表项数 ())) 加入成员 (列表框信息, 局部_列表框信息) 超级列表框1.全部删除 () 超级列表框操作类.数据_高速插入表项 (, 列表框信息, #排序方式_表项标题排序) 数组清零 (局部_列表框信息.列标题) 退出许可区 (许可证) .默认 .判断结束 进入许可区 (许可证) 工作线程数 = 工作线程数 - 1 进度条1.位置 = (到整数 (编辑框_线程数.内容) - 工作线程数) ÷ 到整数 (编辑框_线程数.内容) × 100 .判断开始 (工作线程数 = 0) 状态条1.置文本 (0, “准备就绪”) 进度条1.位置 = 0 .默认 状态条1.置文本 (0, “正在扫描...”) .判断结束 状态条1.置文本 (1, “线程: ” + 到文本 (工作线程数)) 退出许可区 (许可证) 释放内存 (参数) .子程序 __启动窗口_将被销毁 删除进入许可证 (许可证) 关闭线程句柄 (线程句柄) .子程序 _按钮2_被单击 关闭线程句柄 (线程句柄) 强制结束线程 (线程句柄) .子程序 _按钮_导出_被单击 .局部变量 文本, 文本型 .局部变量 i, 整数型 文本 = “IP地址” + 取空白文本 (15) + “主机名称” + 取空白文本 (15) + “MAC地址” + 取空白文本 (12) + “延迟” + #换行符 .计次循环首 (超级列表框1.取表项数 (), i) 文本 = 文本 + 超级列表框1.取标题 (i - 1, 0) + 取空白文本 (10) + 超级列表框1.取标题 (i - 1, 1) + 取空白文本 (10) + 超级列表框1.取标题 (i - 1, 2) + 取空白文本 (10) + 超级列表框1.取标题 (i - 1, 3) + #换行符 .计次循环尾 () .如果真 (通用对话框1.打开 ()) .判断开始 (写到文件 (通用对话框1.文件名, 到字节集 (文本))) 信息框 (“导出成功!”, 64, ) .默认 信息框 (“导出失败!”, 16, ) .判断结束 .如果真结束 .子程序 _编辑框_线程数_调节钮被按下 .参数 按钮值, 整数型 编辑框_线程数.内容 = 到文本 (到整数 (编辑框_线程数.内容) + 按钮值) .子程序 _编辑框_线程数_内容被改变 .判断开始 (到整数 (编辑框_线程数.内容) ≤ 0) 编辑框_线程数.内容 = “100” 信息框 (“数值必须大于0”, 48, ) .判断 (到整数 (编辑框_线程数.内容) > 1024) 编辑框_线程数.内容 = “100” 信息框 (“数值小于1024”, 48, ) .默认 .判断结束
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对靠谱客的支持。如果你想了解更多相关内容请查看下面相关链接
最后
以上就是迷路泥猴桃为你收集整理的易语言制作永恒之蓝局域网扫描器的代码的全部内容,希望文章能够帮你解决易语言制作永恒之蓝局域网扫描器的代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复