MENU

给R7000路由器添加短信提醒IP地址功能

• August 27, 2019 • Read: 58 • 生活,折腾阅读设置

最近DDNS服务不是很稳定,莫名其妙自己关闭,ddnspod的更新频率有点慢。
于是一时脑热给路由器加了个IP短信提醒的功能。
需要准备:
1、可正常访问的php空间。
2、短信宝短信平台账户
首先登陆短信宝平台,添加模板“【ZhensNAS】您的IP地址已经变更为:{ip}。请及时管理。”
【】内的签名自己定义。
然后上传sms.php文件到空间/网站/服务器,代码如下:


<?php

/***
 *  发送短信通知最新IP地址
 *  短信宝接口:
 *  http://www.smsbao.com/
 * */
    $smsapi = "http://api.smsbao.com/";
    $user = "username"; //短信平台帐号
    $pass = md5("password"); //短信平台密码

    if(!isset($_GET['m'])){
        exit('no m');
    }

    $phone = $_GET['m'];//要发送短信的手机号码
    $ip = getip();
    if($ip =='unknown'){
        exit('no ip!!!');
    }
    $content="【ZhensNAS】您的IP地址已经变更为:".$ip."。请及时管理。";//要发送的短信内容
    $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
    $result =file_get_contents($sendurl) ;
    echo $result;
    
    function getip(){
        if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) 
                $ip = getenv("HTTP_CLIENT_IP");
        else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) 
                $ip = getenv("HTTP_X_FORWARDED_FOR");
        else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) 
                $ip = getenv("REMOTE_ADDR");
        else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) 
                $ip = $_SERVER['REMOTE_ADDR'];
        else 
                $ip = "unknown";
        return($ip);
    }
?>

通过访问/ sms.php?m=你的手机号 即可发送客户端IP地址信息。
接下来只要让路由器访问这个url即可。

使用ssh连接路由器,
cd /jffs/scripts/目录,编辑wan-start文件,在末尾增加以下代码

sleep 10
curl http://你的网站/sms.php?m=你的手机号

至此,大功告成,重启路由器,既可第一时间获取路由器最新IP地址,当然这一切的前提是你有公网IP。

缺点:似乎只有在重启之后wan口开始拨号的时候会触发这个脚本。断线重连似乎不会。

Archives QR Code Tip
QR Code for this page
Tipping QR Code