.版本 2
.子程序 _按钮1_被单击
.局部变量 网页内容, 文本型
.局部变量 i, 整数型
.局部变量 采集的网址, 文本型, , "0"
.局部变量 采集条数, 长整数型
重定义数组 (ip, 假, 0)
采集的网址 = 分割文本 (编辑框1.内容, #换行符, )
.计次循环首 (取数组成员数 (采集的网址), i)
.如果真 (删全部空 (采集的网址 [i]) ≠ “”)
操作_写操作状态 (“正在获取网址[” + 到文本 (i) + “]内容”)
网页内容 = 到文本 (网页_访问 (采集的网址 [i]))
.如果 (网页内容 ≠ “”)
采集条数 = 采集条数 + 正则_把采集网页整理 (网页内容)
.否则
操作_写操作状态 (“获取网址[” + 到文本 (i) + “]内容 失败!”)
.如果结束
.如果真结束
.计次循环尾 ()
' 网页内容 = 编辑框1.内容
操作_写操作状态 (“正在采集 手动采集网页文本内容”)
采集条数 = 采集条数 + 正则_把采集网页整理 (编辑框2.内容)
操作_写操作状态 (“完成!共采集了[” + 到文本 (采集条数) + “]条IP”)
.子程序 正则_把采集网页整理, 整数型
.参数 网页内容, 文本型
.局部变量 l_ip, ip
.局部变量 正则, 正则表达式类
.局部变量 采集条数, 整数型
.局部变量 i, 整数型
网页内容 = 正则_去除不必要标签 (网页内容)
正则.创建 (“[\s\S]*?(\d+\.\d+\.\d+\.\d+)[\s\S]*?(\d{2,4})”, 网页内容)
.计次循环首 (正则.取匹配数量 (), i)
采集条数 = 采集条数 + 1
l_ip.ip = 正则.取子匹配文本 (i, 1)
l_ip.端口 = 正则.取子匹配文本 (i, 2)
加入成员 (ip, l_ip)
.计次循环尾 ()
返回 (采集条数)
.子程序 正则_去除不必要标签, 文本型
.参数 文本, 文本型
.局部变量 正则, 正则表达式类
.局部变量 a, 文本型
.局部变量 i, 整数型
.局部变量 已经替换的, 文本型, , "0"
.局部变量 i2, 整数型
正则.创建 (“<td.*?>”, 文本, 真, 真, 真)
' a = 正则.替换 (“a”)
.计次循环首 (正则.取匹配数量 (), i)
.如果真 (是否是重复替换文本 (已经替换的, 正则.取匹配文本 (i)) = 假)
加入成员 (已经替换的, 正则.取匹配文本 (i))
.如果真结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (已经替换的), i)
文本 = 子文本替换 (文本, 已经替换的 [i], , , , 真)
.计次循环尾 ()
返回 (文本)
.子程序 是否是重复替换文本, 逻辑型
.参数 数组, 文本型, 数组
.参数 判断内容, 文本型
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (数组), i)
.如果真 (数组 [i] = 判断内容)
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
.子程序 规范表达式, 文本型
.参数 文本, 文本型
返回 (子文本替换 (文本, #引号, “\x22”, , , 真))
.子程序 检查ip, 逻辑型
.参数 ipx, 文本型
.局部变量 a, 文本型, , "0"
a = 分割文本 (ipx, “.”, )
.判断开始 (取数组成员数 (a) = 4)
.如果真 (取文本长度 (a [1]) > 3 或 取文本长度 (a [2]) > 3 或 取文本长度 (a [3]) > 3 或 取文本长度 (a [4]) > 3 或 到整数 (a [1]) = 0)
返回 (假)
.如果真结束
.如果真 (到整数 (a [1]) = 0)
返回 (假)
.如果真结束
返回 (真)
.默认
返回 (假)
.判断结束
.子程序 检查端口, 逻辑型
.参数 端口, 文本型
.如果真 (取文本长度 (端口) > 5)
返回 (假)
.如果真结束
.如果真 (到整数 (端口) = 0)
返回 (假)
.如果真结束
返回 (真)
.子程序 _按钮1_被单击
.局部变量 网页内容, 文本型
.局部变量 i, 整数型
.局部变量 采集的网址, 文本型, , "0"
.局部变量 采集条数, 长整数型
重定义数组 (ip, 假, 0)
采集的网址 = 分割文本 (编辑框1.内容, #换行符, )
.计次循环首 (取数组成员数 (采集的网址), i)
.如果真 (删全部空 (采集的网址 [i]) ≠ “”)
操作_写操作状态 (“正在获取网址[” + 到文本 (i) + “]内容”)
网页内容 = 到文本 (网页_访问 (采集的网址 [i]))
.如果 (网页内容 ≠ “”)
采集条数 = 采集条数 + 正则_把采集网页整理 (网页内容)
.否则
操作_写操作状态 (“获取网址[” + 到文本 (i) + “]内容 失败!”)
.如果结束
.如果真结束
.计次循环尾 ()
' 网页内容 = 编辑框1.内容
操作_写操作状态 (“正在采集 手动采集网页文本内容”)
采集条数 = 采集条数 + 正则_把采集网页整理 (编辑框2.内容)
操作_写操作状态 (“完成!共采集了[” + 到文本 (采集条数) + “]条IP”)
.子程序 正则_把采集网页整理, 整数型
.参数 网页内容, 文本型
.局部变量 l_ip, ip
.局部变量 正则, 正则表达式类
.局部变量 采集条数, 整数型
.局部变量 i, 整数型
网页内容 = 正则_去除不必要标签 (网页内容)
正则.创建 (“[\s\S]*?(\d+\.\d+\.\d+\.\d+)[\s\S]*?(\d{2,4})”, 网页内容)
.计次循环首 (正则.取匹配数量 (), i)
采集条数 = 采集条数 + 1
l_ip.ip = 正则.取子匹配文本 (i, 1)
l_ip.端口 = 正则.取子匹配文本 (i, 2)
加入成员 (ip, l_ip)
.计次循环尾 ()
返回 (采集条数)
.子程序 正则_去除不必要标签, 文本型
.参数 文本, 文本型
.局部变量 正则, 正则表达式类
.局部变量 a, 文本型
.局部变量 i, 整数型
.局部变量 已经替换的, 文本型, , "0"
.局部变量 i2, 整数型
正则.创建 (“<td.*?>”, 文本, 真, 真, 真)
' a = 正则.替换 (“a”)
.计次循环首 (正则.取匹配数量 (), i)
.如果真 (是否是重复替换文本 (已经替换的, 正则.取匹配文本 (i)) = 假)
加入成员 (已经替换的, 正则.取匹配文本 (i))
.如果真结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (已经替换的), i)
文本 = 子文本替换 (文本, 已经替换的 [i], , , , 真)
.计次循环尾 ()
返回 (文本)
.子程序 是否是重复替换文本, 逻辑型
.参数 数组, 文本型, 数组
.参数 判断内容, 文本型
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (数组), i)
.如果真 (数组 [i] = 判断内容)
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
.子程序 规范表达式, 文本型
.参数 文本, 文本型
返回 (子文本替换 (文本, #引号, “\x22”, , , 真))
.子程序 检查ip, 逻辑型
.参数 ipx, 文本型
.局部变量 a, 文本型, , "0"
a = 分割文本 (ipx, “.”, )
.判断开始 (取数组成员数 (a) = 4)
.如果真 (取文本长度 (a [1]) > 3 或 取文本长度 (a [2]) > 3 或 取文本长度 (a [3]) > 3 或 取文本长度 (a [4]) > 3 或 到整数 (a [1]) = 0)
返回 (假)
.如果真结束
.如果真 (到整数 (a [1]) = 0)
返回 (假)
.如果真结束
返回 (真)
.默认
返回 (假)
.判断结束
.子程序 检查端口, 逻辑型
.参数 端口, 文本型
.如果真 (取文本长度 (端口) > 5)
返回 (假)
.如果真结束
.如果真 (到整数 (端口) = 0)
返回 (假)
.如果真结束
返回 (真)