找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
楼主: happ***

H大 Padavan 微信推送 增加 ipv6 变动提醒

[复制链接]
代码在哪里了??
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

复制替换之后运行不推送....
自己根据原版的代码稍微加了点东西之后就OK了
我把我现在用的
  1. #!/bin/sh
  2. # 此脚本路径:/etc/storage/serverchan_script.sh
  3. # 自定义设置 - 脚本 - 自定义 Crontab 定时任务配置,可自定义启动时间
  4. source /etc/storage/script/init.sh
  5. export PATH='/etc/storage/bin:/tmp/script:/etc/storage/script:/opt/usr/sbin:/opt/usr/bin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'
  6. export LD_LIBRARY_PATH=/lib:/opt/lib
  7. serverchan_enable=`nvram get serverchan_enable`
  8. serverchan_enable=${serverchan_enable:-"0"}
  9. serverchan_sckey=`nvram get serverchan_sckey`
  10. serverchan_notify_1=`nvram get serverchan_notify_1`
  11. serverchan_notify_2=`nvram get serverchan_notify_2`
  12. serverchan_notify_3=`nvram get serverchan_notify_3`
  13. serverchan_notify_4=`nvram get serverchan_notify_4`
  14. mkdir -p /tmp/var
  15. resub=1
  16. # 获得外网地址
  17.     arIpAddress() {
  18.     curltest=`which curl`
  19.     if [ -z "$curltest" ] || [ ! -s "`which curl`" ] ; then
  20.         #wget --no-check-certificate --quiet --output-document=- "https://www.ipip.net" | grep "IP地址" | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  21.         wget --no-check-certificate --quiet --output-document=- "http://members.3322.org/dyndns/getip" | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  22.         #wget --no-check-certificate --quiet --output-document=- "ip.6655.com/ip.aspx" | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  23.         #wget --no-check-certificate --quiet --output-document=- "ip.3322.net" | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  24.     else
  25.         #curl -L -k -s "https://www.ipip.net" | grep "IP地址" | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  26.         curl -k -s "http://members.3322.org/dyndns/getip" | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  27.         #curl -k -s ip.6655.com/ip.aspx | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  28.         #curl -k -s ip.3322.net | grep -E -o '([0-9]+\.){3}[0-9]+' | head -n1 | cut -d' ' -f1
  29.     fi
  30.     }
  31. # 读取最近外网地址
  32.     lastIPAddress() {
  33.         inter="/etc/storage/lastIPAddress"
  34.         cat $inter
  35.     }
  36.        
  37.     arIpAddress6() {
  38.     curltest=`which curl`
  39.     if [ -z "$curltest" ] || [ ! -s "`which curl`" ] ; then
  40.         wget --no-check-certificate --quiet --output-document=- "http://v6.ipv6-test.com/api/myip.php"
  41.     else
  42.         curl -k -s "http://v6.ipv6-test.com/api/myip.php"
  43.     fi
  44.     }
  45. # 读取最近外网地址
  46.     lastIPAddress6() {
  47.         inter6="/etc/storage/lastIPAddress6"
  48.         cat $inter6
  49.     }
  50.        

  51. while [ "$serverchan_enable" = "1" ];
  52. do
  53. serverchan_enable=`nvram get serverchan_enable`
  54. serverchan_enable=${serverchan_enable:-"0"}
  55. serverchan_sckey=`nvram get serverchan_sckey`
  56. serverchan_notify_1=`nvram get serverchan_notify_1`
  57. serverchan_notify_2=`nvram get serverchan_notify_2`
  58. serverchan_notify_3=`nvram get serverchan_notify_3`
  59. serverchan_notify_4=`nvram get serverchan_notify_4`
  60. curltest=`which curl`
  61. ping_text=`ping -4 114.114.114.114 -c 1 -w 2 -q`
  62. ping_time=`echo $ping_text | awk -F '/' '{print $4}'| awk -F '.' '{print $1}'`
  63. ping_loss=`echo $ping_text | awk -F ', ' '{print $3}' | awk '{print $1}'`
  64. if [ ! -z "$ping_time" ] ; then
  65.     echo "ping:$ping_time ms 丢包率:$ping_loss"
  66. else
  67.     echo "ping:失效"
  68. fi
  69. if [ ! -z "$ping_time" ] ; then
  70. echo "online"
  71. if [ "$serverchan_notify_1" = "1" ] ; then
  72.     hostIP=$(arIpAddress)
  73.     hostIP=`echo $hostIP | head -n1 | cut -d' ' -f1`
  74.     lastIP=$(lastIPAddress)
  75.     hostIP6=$(arIpAddress6)
  76.     hostIP6=`echo $hostIP6 | head -n1 | cut -d' ' -f1`
  77.     lastIP6=$(lastIPAddress6)
  78.     if [ "$lastIP" != "$hostIP" ] && [ ! -z "$hostIP" ] ; then
  79.     sleep 60
  80.         hostIP=$(arIpAddress)
  81.         hostIP=`echo $hostIP | head -n1 | cut -d' ' -f1`
  82.         lastIP=$(lastIPAddress)
  83.     fi
  84.     if [ "$lastIP" != "$hostIP" ] && [ ! -z "$hostIP" ] ; then
  85.         logger -t "【互联网 IPv4 变动】" "目前 IPv4: ${hostIP}"
  86.         logger -t "【互联网 IPv4 变动】" "上次 IPv4: ${lastIP}"
  87.         curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=【PDCN_"`nvram get computer_name`"】互联网IPv4变动" -d "&desp=${hostIP}" &
  88.         logger -t "【微信推送】" "互联网IPv4变动:${hostIP}"
  89.         echo -n $hostIP > /etc/storage/lastIPAddress
  90.     fi
  91.     if [ "$lastIP6" != "$hostIP6" ] && [ ! -z "$hostIP6" ] ; then
  92.     sleep 60
  93.         hostIP6=$(arIpAddress6)
  94.         hostIP6=`echo $hostIP6 | head -n1 | cut -d' ' -f1`
  95.         lastIP6=$(lastIPAddress6)
  96.     fi
  97.     if [ "$lastIP6" != "$hostIP6" ] && [ ! -z "$hostIP6" ] ; then
  98.         logger -t "【互联网 IPv6 变动】" "目前 IPv6: ${hostIP6}"
  99.         logger -t "【互联网 IPv6 变动】" "上次 IPv6: ${lastIP6}"
  100.         curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=【PDCN_"`nvram get computer_name`"】互联网IPv6变动" -d "&desp=${hostIP6}" &
  101.         logger -t "【微信推送】" "互联网IPv6变动:${hostIP6}"
  102.         echo -n $hostIP6 > /etc/storage/lastIPAddress6
  103.     fi
  104. fi
  105. if [ "$serverchan_notify_2" = "1" ] ; then
  106.     # 获取接入设备名称
  107.     touch /tmp/var/newhostname.txt
  108.     echo "接入设备名称" > /tmp/var/newhostname.txt
  109.     #cat /tmp/syslog.log | grep 'Found new hostname' | awk '{print $7" "$8}' >> /tmp/var/newhostname.txt
  110.     cat /tmp/static_ip.inf | grep -v "^$" | awk -F "," '{ if ( $6 == 0 ) print "【内网IP:"$1",MAC:"$2",名称:"$3"】  "}' >> /tmp/var/newhostname.txt
  111.     # 读取以往接入设备名称
  112.     touch /etc/storage/hostname.txt
  113.     [ ! -s /etc/storage/hostname.txt ] && echo "接入设备名称" > /etc/storage/hostname.txt
  114.     # 获取新接入设备名称
  115.     awk 'NR==FNR{a[$0]++} NR>FNR&&a[$0]' /etc/storage/hostname.txt /tmp/var/newhostname.txt > /tmp/var/newhostname相同行.txt
  116.     awk 'NR==FNR{a[$0]++} NR>FNR&&!a[$0]' /tmp/var/newhostname相同行.txt /tmp/var/newhostname.txt > /tmp/var/newhostname不重复.txt
  117.     if [ -s "/tmp/var/newhostname不重复.txt" ] ; then
  118.         content=`cat /tmp/var/newhostname不重复.txt | grep -v "^$"`
  119.         curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=【PDCN_"`nvram get computer_name`"】新设备加入" -d "&desp=${content}" &
  120.         logger -t "【微信推送】" "PDCN新设备加入:${content}"
  121.         cat /tmp/var/newhostname不重复.txt | grep -v "^$" >> /etc/storage/hostname.txt
  122.     fi
  123. fi
  124. if [ "$serverchan_notify_4" = "1" ] ; then
  125.     # 设备上、下线提醒
  126.     # 获取接入设备名称
  127.     touch /tmp/var/newhostname.txt
  128.     echo "接入设备名称" > /tmp/var/newhostname.txt
  129.     #cat /tmp/syslog.log | grep 'Found new hostname' | awk '{print $7" "$8}' >> /tmp/var/newhostname.txt
  130.     cat /tmp/static_ip.inf | grep -v "^$" | awk -F "," '{ if ( $6 == 0 ) print "【内网IP:"$1",MAC:"$2",名称:"$3"】  "}' >> /tmp/var/newhostname.txt
  131.     # 读取以往上线设备名称
  132.     touch /etc/storage/hostname_上线.txt
  133.     [ ! -s /etc/storage/hostname_上线.txt ] && echo "接入设备名称" > /etc/storage/hostname_上线.txt
  134.     # 上线
  135.     awk 'NR==FNR{a[$0]++} NR>FNR&&a[$0]' /etc/storage/hostname_上线.txt /tmp/var/newhostname.txt > /tmp/var/newhostname相同行_上线.txt
  136.     awk 'NR==FNR{a[$0]++} NR>FNR&&!a[$0]' /tmp/var/newhostname相同行_上线.txt /tmp/var/newhostname.txt > /tmp/var/newhostname不重复_上线.txt
  137.     if [ -s "/tmp/var/newhostname不重复_上线.txt" ] ; then
  138.         content=`cat /tmp/var/newhostname不重复_上线.txt | grep -v "^$"`
  139.         curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=【PDCN_"`nvram get computer_name`"】设备【上线】Online" -d "&desp=${content}" &
  140.         logger -t "【微信推送】" "PDCN设备【上线】:${content}"
  141.         cat /tmp/var/newhostname不重复_上线.txt | grep -v "^$" >> /etc/storage/hostname_上线.txt
  142.     fi
  143.     # 下线
  144.     awk 'NR==FNR{a[$0]++} NR>FNR&&!a[$0]' /tmp/var/newhostname.txt /etc/storage/hostname_上线.txt > /tmp/var/newhostname不重复_下线.txt
  145.     if [ -s "/tmp/var/newhostname不重复_下线.txt" ] ; then
  146.         content=`cat /tmp/var/newhostname不重复_下线.txt | grep -v "^$"`
  147.         curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=【PDCN_"`nvram get computer_name`"】设备【下线】offline" -d "&desp=${content}" &
  148.         logger -t "【微信推送】" "PDCN设备【下线】:${content}"
  149.         cat /tmp/var/newhostname.txt | grep -v "^$" > /etc/storage/hostname_上线.txt
  150.     fi
  151. fi
  152. if [ "$serverchan_notify_3" = "1" ] && [ "$resub" = "1" ] ; then
  153.     # 固件更新提醒
  154.     [ ! -f /tmp/var/osub ] && echo -n `nvram get firmver_sub` > /tmp/var/osub
  155.     rm -f /tmp/var/nsub
  156.     wgetcurl.sh "/tmp/var/nsub" "$hiboyfile/osub" "$hiboyfile2/osub"
  157.     if [ $(cat /tmp/var/osub) != $(cat /tmp/var/nsub) ] && [ -f /tmp/var/nsub ] ; then
  158.         echo -n `nvram get firmver_sub` > /tmp/var/osub
  159.         content="新的固件: `cat /tmp/var/nsub | grep -v "^$"` ,目前旧固件: `cat /tmp/var/osub | grep -v "^$"` "
  160.         logger -t "【微信推送】" "固件 新的更新:${content}"
  161.         curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=【PDCN_"`nvram get computer_name`"】固件更新提醒" -d "&desp=${content}" &
  162.         echo -n `cat /tmp/var/nsub | grep -v "^$"` > /tmp/var/osub
  163.     fi
  164. fi
  165.     resub=`expr $resub + 1`
  166.     [ "$resub" -gt 360 ] && resub=1
  167. else
  168. echo "Internet down 互联网断线"
  169. resub=1
  170. fi
  171. sleep 60
  172. continue
  173. done

复制代码

点评

使用代码成功运行及推送,一直很稳定。不过最近大概十几天以来,每次重新拨号获取到新的ip地址后,只推送ipv4的地址信息,ipv6的不推送了,日志里面也没有ipv6相关的信息记录。去/etc/storage/lastIPAddress6里面,  详情 回复 发表于 2020-5-7 03:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

为什么帐号注册不了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

MDOS 发表于 2020-1-25 15:17
复制替换之后运行不推送....
自己根据原版的代码稍微加了点东西之后就OK了
我把我现在用的

使用代码成功运行及推送,一直很稳定。不过最近大概十几天以来,每次重新拨号获取到新的ip地址后,只推送ipv4的地址信息,ipv6的不推送了,日志里面也没有ipv6相关的信息记录。去/etc/storage/lastIPAddress6里面,能看到记录了更新后的新ipv6地址,但一直没有推送。反馈一下

点评

收到 很久没上恩山了 我前一阵也是 初步分析应该是curl的网址出了问题 把那段代码换成如下即可  详情 回复 发表于 2020-5-21 21:50
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享                     
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

月下灯 发表于 2020-5-7 03:39
使用代码成功运行及推送,一直很稳定。不过最近大概十几天以来,每次重新拨号获取到新的ip地址后,只推送 ...

收到 很久没上恩山了
我前一阵也是 初步分析应该是curl的网址出了问题
把那段代码换成如下即可
  1.     arIpAddress6() {
  2.     curltest=`which curl`
  3.     if [ -z "$curltest" ] || [ ! -s "`which curl`" ] ; then
  4.         wget --no-check-certificate --quiet --output-document=- "http://v6.ipv6-test.com/api/myip.php"
  5.     else
  6.         curl -k -s "http://getip6.china-ipv6.cn:5010/"
  7.     fi
  8.     }
复制代码
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 07:53

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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