记录 易语言 正则获取ip

本文详细阐述了一个子程序如何通过按钮点击触发,利用编辑框输入的网址进行内容解析,并采集IP地址。程序通过循环遍历分割后的网址列表,对每个网址进行网页访问,解析网页内容,提取IP信息,最后汇总并显示采集的IP总数。
.版本 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)
    返回 (假)
.如果真结束
返回 (真)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值