王志勇 发表于 2017年11月26日 22:01
也有的运营商是采用用户主动发送验证信息的方式,例如申请QQ、或微信解封的时候需要向1069端口发送一条短信。(在去年,移动、联通手机发送106短信都不收费,电信收费;今年,移动、联通用户发106短信都要收费了,0.1元/条)
这种方式,运营商可以减少很多的短信成本,短信费用均由用户支付。
起初我是这样构思的:运营者可以为项目申请一个固定电话、或手机号转无线固定接入,连接电话录音机。当需要验证用户的手机号码时,用户拨打这个号码,来电显示里就记录了这个号码。然后,再人工通过验证,这样十分繁琐。
现在,终于试验成功了,用户发短信至一个专用的手机号(选择一个较好的号码、靓号,手机卡可以是任意运营商、任意归属地或国家),然后短信会自动连接网站的数据进行验证,无需任何人工操作。方案和步骤如下,已调试成功:
1. 手机卡放在一个安卓4.0以上的手机里,安装AndroPHP,让手机能运行PHP程序。因为后面要用到SQLite3,安卓手机安装SQLite3相当繁琐,并且安卓手机里的Shell命令远不如用PHP程序来控制文件方便得多。所以手机上安装PHP,作用是将短信数据库发送给远程VPS。
2. 这个手机接收的短信,是存放在/data/data/com.android.providers.telephony/databases/mmssms.db 。首先安卓手机必须Root(最好的Root软件,推荐Kingroot、或360 Root),用R.E.管理器,将mmssms.db的权限改为777,否则很可能这个文件无法被PHP访问。
3. 写一段PHP程序,让其检测这个mmssms.db的修改时间,并记录最后的修改时间,让其隔30-60秒检测一次,一旦修改时间发生改变,则执行步骤4。
4. 需要一台VPS,安装FTP。系统建议用Ubuntu12,因为安装SQLite3很顺利。给它安装vsftpd。
然后,在步骤3里,一旦修改时间发生改变,则让PHP执行将这个mmssms.db文件通过FTP上传至VPS(PHP的FTP上传程序可在网上搜索到)。
5. 这个VPS,需要事先安装好SQLite3、Apache、PHP5。
SQLite3的安装方法,只要这个命令就可以,测试通过:
apt-get -y install sqlite sqlite3
6. 为什么不给PHP安装SQLite3?因为时间的关系,没有调试成功(我的电脑无法安装Apache2.4)。
只能暂时让Ubuntu12安装SQLite3,然后PHP程序里通过exec()函数调用Shell命令来执行SQLite3。
7. Ubuntu12下,显示数据库里所有的短信内容的命令是:
sqlite3 mmssms.db
select * from sms;
8. Shell命令传给VPS上的PHP程序就是:
<?exec('sqlite3 mmssms.db && select * from sms;');?>
9. 步骤1里的手机,需要24小时开机。需要将手机电池取下,然后用TP4056从5V转4.1V给手机供电,或者用LM2596S、或MP2307DN将直流转为3.9~4.18V,给手机24小时×365天供电。不可将5V直接给手机电池输入供电,可能会烧坏主板。
10. 这个方案,电脑无需开机。只要手机保持开机、手机一直连接WIFI、AndroPHP保持在手机后台运行。
这样,手机会自动在接到新短信时,将短信的数据库上传给远程的VPS服务器,并被VPS上的PHP程序读取并分析用户的手机号码、短信的内容、验证码是否正确。PHP程序远比Shell命令易调试、功能多得多,所以能用PHP完成,就尽量交给PHP程序。
因此,当我尝试去记录这些思路时,并发布在博客,比如近期的几篇“原创干货分享”,短信验证开发的方案分享,等等,这些既是等待有缘人来交流,也是给自己看,当自己再次去看这些文章,发现思路竟是如此清晰,很多自己彻底忘记的内容,能够在这些文章找到。
从去年开始,我就采购了一些用于手机号验证的硬件设备,比如录音电话、电话交换机、GSM无线接入平台,并在去年完成把手机做成web服务器,可将手机接收到的短信,自动上传到远程的服务器上,以判断用户是否发了上行的短信。并从今年8月开始,大力开发短信验证的程序。
我当时安装AndroPHP,是为了让手机定时把收到的短信,上传给远程服务器,让远程的Ubuntu服务器通过PHP+SQLite3读取短信的内容,后来完美完成。方案是编写一段PHP程序,然后定时上传/data/data/com.android.providers.telephony/databases/mmssms.db文件。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +