目前,openvpn云免系统愈发火热,网络上有不少专门贩卖流量,相较于三大运营商的流量来说,简直便宜到爆啊!当然,云免虽然省钱,但也有不好得地方,比如。。。用着用着流量用完了,云免系统可不会提醒你流量用完了,在你不知道流量没有了的情况下,假如在看直播,那感觉,简直哔了狗。
为了提高云免用户体验,代码狗为自己的用户引进了短信提醒功能,下面将详细介绍如何实现该功能的。
第一步,你需要一个带流控的免流系统,目前网络上,比较流行的骚逼汪、康师傅、小飞侠等等的一键部署代码上都带有流控系统。本文采用康师傅的免流系统进行讲解。
第二步,你需要一个第三方短信发送平台的账号和发送短信的API,本文采用bmob的短信发送模块。(bmob)比目php短信发送API在线说明文档地址:http://docs.bmob.cn/sms/PHP/b_developdoc/doc/index.html
第三步,修改康师傅免流数据库中openvpn数据表的结构,增加字段 lastll,字段类型字符或者整形,浮点型都可以,整形比较简单,这里使用字符型。如下图:
第四步,编写循环扫描程序,因为康师傅的流控系统经验部署了PHP环境,所以,我们就采用PHP进行短信发送和数据库读取操作。代码如下,本人亲测成功!
<?php include_once 'lib/BmobObject.class.php'; include_once 'lib/BmobUser.class.php'; include_once 'lib/BmobBatch.class.php'; include_once 'lib/BmobFile.class.php'; include_once 'lib/BmobImage.class.php'; include_once 'lib/BmobRole.class.php'; include_once 'lib/BmobPush.class.php'; include_once 'lib/BmobPay.class.php'; include_once 'lib/BmobSms.class.php'; include_once 'lib/BmobApp.class.php'; include_once 'lib/BmobSchemas.class.php'; include_once 'lib/BmobTimestamp.class.php'; include_once 'lib/BmobCloudCode.class.php'; include_once 'lib/BmobBql.class.php'; //以上是bmob的API文件,根据需要自行引用!!! ignore_user_abort(); // 后台运行 set_time_limit(0); // 取消脚本运行时间的超时上限 $interval=60;// 每隔1分钟运行,这个间隔时间是可以随着 需要进行修改 do{ //数据库地址 $servername = "localhost"; //数据库用户名 $username = "数据库用户名"; //数据库密码 $password = "密码"; // 创建连接 $conn = mysql_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("数据库连接失败: " . mysql_error()); }else{ mysql_select_db("ov",$conn);//选择要操作的数据库 $sql="select * from openvpn"; $result=mysql_query($sql); while($row=mysql_fetch_array($result)){ $user=$row['iuser']; $asd=(float)$row['lastll']; $cxq=$asd/1048576; $jss=(float)$row['maxll']-(float)$row['isent']+(float)$row['irecv']; $cxh=$jss/1048576; if($cxq>100 and $cxh<100){ try { $coon="截止".gettime(); $coon=$coon.",您的流量已不足100M,请尽快充值!云免有风险,使用需谨慎!"; ////短信相关 $bmobSms = new BmobSms(); $res = $bmobSms->sendSms($user, $coon); //发送短信 // var_dump($res); } catch (Exception $e) { // echo $e; } } $jg=$cxh*1048576; $gx=(string)$jg; $sql="UPDATE openvpn set lastll='"; $sql=$sql.$gx."' where iuser='".$user."'"; mysql_query($sql); } mysql_close($conn); } sleep($interval); }while(true); function gettime(){ date_default_timezone_set("Asia/Hong_Kong"); $time=Date("Y-m-d H:i:s"); return $time; }
第五步,上传代码到流控目录,用浏览器启动上面的程序文件!效果如下:
注意:发送短信的内容不要涉及到平台的禁止关键词,详情请查看关键字监控文档,https://github.com/bmob/bmob-public-docs ,后果不用说,肯定是封号处理!珍惜账号!
另:不会的朋友可以联系我,有偿服务!非诚勿扰!