易语言制作永恒之蓝局域网扫描器的代码

  

<强> DLL命令表

        .版本 2   kernel32 . dll命令睡眠。”dll”、“睡眠”,公开   。参数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”   。局部变量,整数型   ip_arr_str=分割文本(ip,”。”,)   计。次循环首(4)   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   。支持库袜子   。支持库iext2   。支持库规范   。支持库eAPI   。支持库iext   。程序集窗口程序集_启动窗口   。程序集变量网段,文本型   。程序集变量许可证,整数型   。程序集变量线程句柄   。程序集变量超级列表框操作类,超级列表框操作类   。程序集变量列表框信息,列表框信息,“0”,   。程序集变量工作线程数,整数型   ,子程序__启动窗口_创建完毕   初始化()   许可证=创建进入许可证()   ,子程序初始化   。局部变量文本组,文本型,,“0”   文本组=取本机IP ()   。如果真(取数组成员数(文本组)≥1)   网段=取网段(文本组[1])   IP编辑框_开始。地址=网段+ " 1 "   IP编辑框_结束。地址=网段+“255”   。如果真结束   超级列表框操作类。_初始化类(超级列表框1。取窗口句柄())   ,子程序_按钮_开始扫描_被单击   启动线程(和扫描主线程,到整数(编辑框_线程数。内容),线程句柄)   ,子程序扫描主线程   。参数线程数,整数型   。局部变量bool,逻辑型   。局部变量startip,文本型   。局部变量stopip,文本型   。局部变量地址,整数型   清除数组(列表框信息)   超级列表框操作类。数据_全部删除()   startip=IP编辑框_开始。地址   stopip=IP编辑框_结束。地址   bool=真   ,判断循环首(保龄球)   ,判断循环首(工作线程数≥线程数)   睡眠(100)   ,判断循环尾()   地址=申请内存(15日)   写到内存(startip、地址、15)   启动线程(和扫描子线程,地址)   工作线程数=工作线程数+ 1   。如果(startip=stopip)   跳出循环()   否,则   startip=ipadd (startip)   。如果结束   ,判断循环尾()   ,子程序扫描子线程   。参数参数,整数型   时间。局部变量   。局部变量ip,文本型   。局部变量局部_列表框信息,列表框信息   重定义数组(局部_列表框信息。列标题,假,3)带3个列   清除数组(局部_列表框信息。列图片索引)“不使用列图标   ip=指针到文本(参数)   时间=通信测试(ip,到整数(编辑框_延时。内容))   ,判断开始(时间≠1)   局部_列表框信息。图片索引=0   局部_列表框信息。标题=格式化知识产权(IP)   局部_列表框信息。列标题[1]=取远程机器名(ip)   局部_列表框信息。列标题[2]=取远程网卡物理地址(ip)   局部_列表框信息。列标题[3]=到文本(时间)   进入许可区(许可证)   状态条1。置文本(2,“存活主机数:”+到文本(超级列表框1。取表项数()))   加入成员(列表框信息,局部_列表框信息)   超级列表框1。全部删除()   超级列表框操作类。数据_高速插入表项(,列表框信息,#排序方式_表项标题排序)   数组清零(局部_列表框信息。列标题)   退出许可区(许可证)   。默认   ,判断结束   进入许可区(许可证)   工作线程数=工作线程数- 1   进度条1。位置=(到整数(编辑框_线程数。内容)——工作线程数)÷到整数(编辑框_线程数。内容)×100   ,判断开始(工作线程数=0)   状态条1。置文本(0,“准备就绪”)   进度条1。位置=0   。默认   状态条1。置文本(0,“正在扫描……”)   ,判断结束   状态条1。置文本(1,“线程:”+到文本(工作线程数))   退出许可区(许可证)   释放内存(参数)   ,子程序__启动窗口_将被销毁   删除进入许可证(许可证)   关闭线程句柄(线程句柄)   ,子程序_按钮2 _被单击   关闭线程句柄(线程句柄)   强制结束线程(线程句柄)   ,子程序_按钮_导出_被单击   。局部变量文本,文本型   我。局部变量,整数型   文本=" IP地址”+取空白文本(15)+“主机名称“+取空白文本(15)+“MAC地址”+取空白文本(12)+“延迟”+ #换行符   计。次循环首(超级列表框1。取表项数(),我)   文本=文本+超级列表框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岁的)   。默认   ,判断结束

易语言制作永恒之蓝局域网扫描器的代码