找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 58|回复: 0

openwrt的ddns无法开机自启,真麻烦!

[复制链接]

61

主题

19

回帖

529

积分

管理员

积分
529
发表于 2024-2-28 14:15:16 | 显示全部楼层 |阅读模式
远在千里,没办法回去看路由器的ip,最后无奈想到一个办法,因为电信屏蔽了80.443端口,我改了808,4433端口,登录http的808后自动跳转https的4433端口,根据ip段(可以找找,比如电信每个地区都有固定的ip段,类似手机131xxxx中间这4个数字就是某一个地区的号段)逐个登录ip808端口,看返回状态值,如果是30几的重定向状态,基本就是我的路由了!反正不是连接不上的000状态,基本就是我的路由了!
比如我地方的ip段为111.222.96.1-111.222.99.255
路由登录地址为http://ip:808/cgi-bin/luci/ 登录http,是个自动跳转到4433的过程,通过测试会返回临时重定向状态码307,下面脚本中只要不是000就算默认我的路由了!!!


  1. #!/bin/bash

  2. # 定义IP前缀
  3. IP_PREFIX="111.222"

  4. # 定义登录页面基础地址
  5. BASE_LOGIN_PAGE="http://%s:808/cgi-bin/luci/"

  6. # 创建一个空文件用于存储成功连接的IP地址
  7. > router_ips.txt

  8. # 循环遍历IP地址的第三段
  9. for ((i=96; i<=99; i++))
  10. do
  11.     # 循环遍历IP地址的第四段
  12.     for ((j=0; j<=255; j++))
  13.     do
  14.         SUB_IP="$IP_PREFIX.$i.$j"
  15. #下面打印正在连接ip地址
  16.         echo "Testing $SUB_IP..."
  17. #下面打印连接的完整地址,你看看对不对!
  18. #        echo "$(printf "$BASE_LOGIN_PAGE" "$SUB_IP")"
  19.         # 尝试连接到路由器登录页面,并获取HTTP状态码,设定2秒超时时间
  20.         HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$(printf "$BASE_LOGIN_PAGE" "$SUB_IP")" --max-time 2 -k)
  21. #下面是打印出状态码,正常连接是200,还有一些重定向等等,没有连接返回的是000
  22.         echo "$HTTP_STATUS"
  23.         # 检查HTTP状态码是否为000,如果不是则说明这里有戏
  24.         if [ "$HTTP_STATUS" != "000" ]; then
  25.             echo "Router found at $SUB_IP"
  26.             echo "$SUB_IP" >> router_ips.txt
  27.             exit 0
  28.         fi
  29.     done
  30. done

  31. echo "Router not found"
复制代码




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|云端客栈

GMT+8, 2024-5-17 14:27 , Processed in 0.191915 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 askya.cn.

快速回复 返回顶部 返回列表