为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

360路由切换IP小工具源码

三叶资源网 2019-10-18 09:57:13 网络相关源码 1169 ℃ 1 评论
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 集_登录返回CK, 文本型, , , 保存登录后的CK 供全局操作使用
.程序集变量 集_Token, 文本型, , , 保存登录后的Token 供全局操作使用
.程序集变量 集_协议头, 文本型, , , 保存统一的协议头 方便多次调用
.程序集变量 集_IP是否获取成功, 逻辑型
.程序集变量 集_切换前, 文本型
.程序集变量 集_切换后, 文本型
.程序集变量 集_后台IP地址, 文本型

.子程序 __启动窗口_创建完毕

编辑框_运行记录.内容 = #常量_默认帮助
.如果真 (文件是否存在 (取运行目录 () + “/info.ini”))
    批量_选择框_读取配置 (_启动窗口, 取运行目录 () + “/info.ini”)
    批量_编辑框_读取配置 (_启动窗口, 取运行目录 () + “/info.ini”)
    编辑框_密码.内容 = 到文本 (编码_RC4解密 (到字节集 (编辑框_密码.内容), “ceshi1”))
.如果真结束
.如果真 (选择框_是否明文.选中 = 真)
    编辑框_密码.输入方式 = 0
.如果真结束
.如果真 (删首尾空 (编辑框_后台地址.内容) = “”)
    子程序_取默认网关 ()
.如果真结束


.子程序 _按钮_换IP_被单击, , , 换ip前检测各个关键数据

' 切换IP前  清空所有数据!
集_IP是否获取成功 = 假
集_登录返回CK = “”
集_Token = “”
集_协议头 = “”
' 判断关键数据是否为空  为空直接返回并告知用户
.如果真 (编辑框_后台地址.内容 = “”)
    信息框 (“后台地址不允许为空!”, 0 + 48, “地址为空”, _启动窗口)
    返回 ()
.如果真结束
.如果真 (编辑框_密码.内容 = “”)
    信息框 (“管理密码不允许为空!”, 0 + 48, “密码为空”, _启动窗口)
    返回 ()
.如果真结束
.如果真 (编辑框_运行记录.内容 = #常量_默认帮助)
    编辑框_运行记录.内容 = “”
.如果真结束
' 把按钮禁止掉 反正用户多次点击
按钮_换IP.禁止 = 真
集_后台IP地址 = 删首尾空 (编辑框_后台地址.内容)
子程序_登录 ()
' 换IP操作完或者登录失败 把按钮禁止取消掉
按钮_换IP.禁止 = 假

.子程序 子程序_登录, , , 程序化登录 使得程序简明 也方便调用
.局部变量 局_JS_取Pass, 类_脚本组件
.局部变量 局_rand_key, 文本型, , , 存放产生的随机KEY
.局部变量 局_Pass, 文本型, , , 存放生成的加密密码
.局部变量 局_登录提交, 文本型
.局部变量 局_登录返回, 文本型
.局部变量 局_访问状态, 文本型, , , 存放访问 情况的变量

' 执行获取加密密码的JS脚本
局_JS_取Pass.执行 (#常量_取pass)
' 访问网页获取随机的加密KEY,并取出KEY值
局_rand_key = 网页_访问S (“http://” + 集_后台IP地址 + “/router/get_rand_key.cgi?noneed=noneed&_=” + 时间_取现行时间戳 (), 0, , , , , , , , , , , , 5, , 局_访问状态, )
.如果真 (寻找文本 (局_访问状态, “OK”, 0, 假) = -1)
    子程序_运行记录 (局_访问状态)
    子程序_运行记录 (“请检查后台地址是否输入错误,或者软件不支持该路由器!”)
    子程序_取默认网关 ()
    子程序_运行记录 (“程序已经自动取出默认网关,如还有错误请手动查看!!”)
    返回 ()
.如果真结束
局_rand_key = 文本_取出中间文本 (局_rand_key, “rand_key” + #引号 + “:” + #引号, #引号, 0, 假)
' 通过JS脚本取出加密后的密码
局_Pass = 局_JS_取Pass.运行 (“getAesString”, 编辑框_密码.内容, 局_rand_key, , , , )
' 把登陆要提交的文本 存到变量里方便操作
局_登录提交 = “user=admin&pass=” + 局_Pass + “&from=1”
' POST登录,附加协议头要带上Referer:(多次测试需要带上),并把返回的CK保存
局_登录返回 = 网页_访问S (“http://” + 集_后台IP地址 + “/router/web_login.cgi”, 1, 局_登录提交, , 集_登录返回CK, “Referer: http://” + 集_后台IP地址 + “/login_pc.htm”, , , , , , , , , , , )
.如果 (寻找文本 (局_登录返回, “success”, 0, 假) ≠ -1)
    ' 取出关键数据Token 并写入协议头数据 方便后面程序使用
    集_Token = 文本_取出中间文本 (局_登录返回, “token_id” + #引号 + “:” + #引号, #引号, 0, 假)
    集_协议头 = “token_id: ” + 集_Token + #换行符 + “Referer: http://” + 集_后台IP地址 + “/new_index.htm?token_id=” + 集_Token
    ' 输出显示 登录状态和当前IP 并把当前IP存入变量 方便后面比较!
    子程序_运行记录 (“登录成功!”)
    集_切换前 = 子程序_取当前IP ()
    子程序_运行记录 (“当前IP:” + 集_切换前)
    ' 登录成功后开始 换IP
    子程序_换IP ()
.否则
    子程序_运行记录 (“登录失败,请检查密码是否正确!”)
    ' 密码错误  把密码明文显示 方便用户检查!
    选择框_是否明文.选中 = 真
    _选择框_是否明文_被单击 ()
.如果结束


.子程序 子程序_取当前IP, 文本型, , 把取当前IP程序化  方便多次调用
.局部变量 局_当前IP返回, 文本型
.局部变量 局_当前IP, 文本型

' 获取当前IP的返回文本
局_当前IP返回 = 网页_访问S (“http://” + 集_后台IP地址 + “/router/interface_status_show.cgi”, 1, “noneed=noneed”, 集_登录返回CK, , 集_协议头, , , , , , , , , , , )
' 取出当前的IP
局_当前IP = 文本_取右边 (局_当前IP返回, “WAN1”, , 假)
局_当前IP = 文本_取出中间文本 (局_当前IP, “ip” + #引号 + “:” + #引号, #引号, 0, 假)
返回 (局_当前IP)

.子程序 子程序_换IP, , , 程序化换IP 操作方便 单独修改 不影响其他程序
.局部变量 局_换IP返回, 文本型
.局部变量 局_换IP返回1, 文本型
.局部变量 局_断网状态, 文本型

' 开始POST切换IP
子程序_运行记录 (“IP切换中……”)
局_换IP返回 = 网页_访问S (“http://” + 集_后台IP地址 + “/router/wan_status_set.cgi”, 1, “wanid=WAN1&statu=0”, 集_登录返回CK, , 集_协议头, , 真, , , , , , , , 局_断网状态, )
.如果真 (寻找文本 (局_断网状态, “302”, 0, 假) ≠ -1)
    ' 判断CK是否失效  失效重新登录!
    子程序_登录 ()
    返回 ()
.如果真结束
.如果真 (寻找文本 (局_换IP返回, “SUCCESS”, 0, 假) ≠ -1)
    ' 加个判断 防止第一步因为未知原因 没成功
    局_换IP返回1 = 网页_访问S (“http://” + 集_后台IP地址 + “/router/wan_status_set.cgi”, 1, “wanid=WAN1&statu=1”, 集_登录返回CK, , 集_协议头, , , , , , , , , , , )
.如果真结束
.如果真 (寻找文本 (局_换IP返回1, “SUCCESS”, 0, 假) ≠ -1)
    ' 加个判断 防止第一步因为未知原因 没成功
    .判断循环首 (集_IP是否获取成功 = 假)
        子程序_切换等待 ()
        ' 判断换IP有没有成功 没有就一直获取当前IP
        .如果真 (子程序_取当前IP () ≠ “0.0.0.0”)
            集_IP是否获取成功 = 真
            _启动窗口.标题 = “360路由换IP By.934708220”
            ' 比较切换前后IP 是否有变化!
            集_切换后 = 子程序_取当前IP ()
            .如果 (集_切换后 ≠ 集_切换前)
                子程序_运行记录 (“换IP成功!当前IP:” + 集_切换后)
            .否则
                子程序_运行记录 (“换IP失败!IP无变化,重试中……”)
                ' 置集_IP是否获取成功为假 让重新换IP的时候 可以判断是否更换成功
                集_IP是否获取成功 = 假
                子程序_换IP ()
            .如果结束
            .如果真 (选择框_循环切换.选中 = 真)
                ' 置集_IP是否获取成功为假 让重新换IP的时候 可以判断是否更换成功
                集_IP是否获取成功 = 假
                ' 循环间隔
                延时 (到整数 (编辑框_秒.内容) × 1000)
                子程序_换IP ()
            .如果真结束

        .如果真结束

    .判断循环尾 ()
    返回 ()
.如果真结束
' 不管哪步失败都告知用户 失败后显示IP 让用户直观的看到 IP有没有变化 也方便BUG提交
子程序_运行记录 (“未知原因失败!当前IP:” + 子程序_取当前IP ())

.子程序 子程序_运行记录, , , 把运行记录格式化 统一整齐
.参数 文本, 文本型
.局部变量 局_时间, 文本型

' 取出时分秒 方便后面使用
局_时间 = 子文本替换 (到文本 (取时间 (取现行时间 ())), “2000年1月1日”, “”, 0, , 真)
' 把运行记录格式化 统一整齐 使得输出好看!
编辑框_运行记录.加入文本 (局_时间 + “:” + 文本 + #换行符)

.子程序 子程序_切换等待, , , 做一个Loading 防止用户以为软件卡死!

_启动窗口.标题 = “切换中”
.计次循环首 (3, )
    延时 (100)
    _启动窗口.标题 = _启动窗口.标题 + “·”
.计次循环尾 ()

.子程序 子程序_取默认网关, , , 取出默认网关 
.局部变量 局_文件号, 整数型
.局部变量 局_默认网关, 文本型

' 运行CMD 来执行ipconfig 获取网卡信息 并保存到临时文件temp.txt下,(cmd /c 执行完退出命令行 cmd /k 执行但不退出命令行)
运行 (“cmd /c ipconfig>>c:\temp.txt”, 真, 1)
' 判断临时文件是否存在 不存在返回 并再次执行自身程序来获取网关!
.如果真 (文件是否存在 (“c:\temp.txt”) = 假)
    子程序_取默认网关 ()
    返回 ()
.如果真结束
' 打开临时文件来取出默认网关!
局_文件号 = 打开文件 (“c:\temp.txt”, 1, )
局_默认网关 = 文本_取出中间文本 (读入文本 (局_文件号, ), “默认网关. . . . . . . . . . . . . : ”, #换行符, 0, 假)
' 关闭临时文件 并删除!
关闭文件 (局_文件号)
删除文件 (“c:\temp.txt”)
编辑框_后台地址.内容 = 删首尾空 (局_默认网关)

.子程序 _选择框_是否明文_被单击, , , 判断是否明文显示密码 方便用户检查密码对错

.如果 (选择框_是否明文.选中 = 真)
    编辑框_密码.输入方式 = 0
.否则
    编辑框_密码.输入方式 = 2
.如果结束


.子程序 _超级按钮_清空记录_被单击, , , 清空运行记录 减少占用

编辑框_运行记录.内容 = “”

.子程序 _超级按钮_保存配置_被单击, , , 保存配置项 减少配置的输入
.局部变量 密码加密, 文本型

批量_编辑框_保存配置 (_启动窗口, 取运行目录 () + “/info.ini”, “编辑框_运行记录|编辑框_密码”)
密码加密 = 到文本 (编码_RC4加密 (到字节集 (编辑框_密码.内容), “ceshi1”))
写配置项 (取运行目录 () + “/info.ini”, “编辑框”, “编辑框_密码”, 密码加密)
批量_选择框_保存配置 (_启动窗口, 取运行目录 () + “/info.ini”, )

.子程序 _超级按钮_支持作者_被单击



.子程序 __启动窗口_位置被改变, , , 配合软件 置顶隐藏使用

_启动窗口.总在最前 = 真

.子程序 _编辑框_秒_内容被改变, , , 控制自动换IP时间间隔 间隔过短会被路由拉黑

.如果真 (到整数 (删首尾空 (编辑框_秒.内容)) ≤ 3)
    编辑框_秒.内容 = “3”
.如果真结束


.子程序 _选择框_循环切换_被单击, , , 判断取消勾选 可以停止循环换IP

.如果真 (选择框_循环切换.选中 = 假)
    集_IP是否获取成功 = 假
.如果真结束

@TotoroKing

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有1位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-04-17 21:04:42]  回复

    易语言路由换ip

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
音频文件京东联盟返利转链微信HOOK2023-01-23 14:42:10递归算法flash动画websocketWebSocket百度识图源码查大鱼号昵称聊呗精易皮肤模块取指针蚁群算法火山安卓TCP通信WEB交互圆形图像旋转Client代理ip采集OEM信息
最新评论