没有 Java 基础,想要自己撸一个 OpenWrt 自动拨号 APP,难度有多大?

2015-11-03 02:11:54 +08:00
 acess
LZ 非计算机相关专业大学生一枚,南京电信校园宽带用户。
以前电信还不让用路由器分享网络。今年 10 月学校进行了一次网络改造,初步部署校园内网,电信宽带拨号方式也改了标准 PPPoE ,以前的天翼客户端被弃用了。我们试了路由器,现在也能正常使用了。

但是电信搞了宽带绑定手机,需要发短信来获取 PPPoE 密码,有效期只有 6 小时。而且学校规定晚上是会定时断网的。
(其实今年新办的套餐还必须装电信的 APP 才能拿到密码,发短信已经不行了)
所以,想上网的话,就得先拿手机发短信 /打开电信的 APP ,获取密码,然后填到路由器上面(或者电脑的 PPPoE 拨号界面里)。
虽然学校要求晚上断网,但实际上电信还开了公共 WiFi 热点,这个热点也可以用 PPPoE 拨号连上,晚上不会断线。只是无线感觉不是稳定,而且应该是有限速的,下载速度大概只有有线宽带( 60 元 /月套餐)速度的一半不到。
总之,只要想在宿舍上网,每天都要手动获取密码、设置路由,实在是比较烦。而且, OpenWrt 的 LuCI 界面比较笨,操作起来很卡……(据说是内置闪存太慢导致的)所以 LZ 产生了这个想法。
以前从同学手里拷到过一个旧版本破解路由配套的一键上网 APP ,但这个 APP 在电信送的手机上会崩溃,而且没有自动连接功能。
8272 次点击
所在节点    Android
24 条回复
yeyeye
2015-11-03 08:05:54 +08:00
先抓包把协议研究出来,然后模拟请求, Openwrt 能用 JAVA ?好像一般都是 bash 脚本吧
crazycen
2015-11-03 08:13:03 +08:00
如果是 java 写的, luci 没 2g 内存跑不起来!
andyhuzhill
2015-11-03 08:34:38 +08:00
Openwrt  一般不是用C的么?
sandideas
2015-11-03 08:47:33 +08:00
我的思路应该会是读取短信,正则出验证码,然后脚本拨号。。。
arens
2015-11-03 09:02:19 +08:00
什么学校,必须用电信校园宽带吗?
Troevil
2015-11-03 09:06:42 +08:00
重写 pppd 需要的是 c 不是 java ,java 要写起来那得花大代价
Cavolo
2015-11-03 09:06:57 +08:00
居然不是闪迅,你就高兴吧
neo2015
2015-11-03 09:07:39 +08:00
openwrt 用 java 吗?一般不是 shell 和 lua 吗
myth
2015-11-03 09:20:11 +08:00
楼主的意思应该是想在一个废旧 android 手机运行个 APP 实现自动拨号的功能
lijsf
2015-11-03 09:33:07 +08:00
之前做过一点 openWRT 的东西。你这个需求我觉得最简单的可以这么来搞。
1. 在 openwrt 上写个 bash 定时任务脚本,定时去一个 web 接口上拿密码,然后拨号。
2. 在 web 服务器上写个程序发短信获取电信的密码。
这个方案简单易行,但有两个问题, 1 是路由器先得联网才能拿到密码,不一定能行。 2 是你发短信可能必须得你那个手机号才行,比较麻烦。

可以改成这个方案:
1.openwrt 上写个 server 程序,用 c/lua 都可以。监听某个端口,接收密码,拨号。用 C 就是几十行程序。
2.写个 JavaAPP ,连接 openwrt 的 server 程序,调发短信接口自动发短信,然后发送到 openwrt ,触发 openwrt server 程序自动拨号。

这个方案实现起来稍麻烦点,不过也不难。
Reficul
2015-11-03 09:33:21 +08:00
应该很快的吧,感觉 Android 主要是那堆函数怎么用。现查显用呗😃
xmoiduts
2015-11-03 10:07:32 +08:00
我也有类似的问题,山寨版校园网客户端,现在有完整的 C 源代码,别人的 linux 可以编译+正常使用。但我不知道如何将它移植到 openwrt 平台。不懂 linux ,只用 mipsel 的 gcc 编译了一下,运行不了。现在路由器也在吃灰。
little_cup
2015-11-03 10:17:49 +08:00
LZ 的需求不需要「编程」。
电信手机上装一个 tasker+tasker ssh plugin 。
手动编写规则定时发短信->正则提取出短信中验证码->ssh 连接路由并拨号。
就可以了。
以前玩过定时给 10086 发短信正则提取出余额显示在桌面,和 openwrt 上自动电信拨号(我们那里还没有验证码)。所以确定上述链条是走的通的。
kenshinhu
2015-11-03 10:18:49 +08:00
首先要懂 linux 吧
mortal
2015-11-03 10:34:59 +08:00
唉,又想起了自己大学时候为了搞这些东西从小白成为了 Linuxer …然后变成了学渣。
jasontse
2015-11-03 10:39:43 +08:00
LZ 的需求应该是用 Java 写个 Android App 自动读短信,然后登录 OpenWrt 拨号。是这意思吧。
skylancer
2015-11-03 10:52:25 +08:00
如果 lz 不用电信卡打电话上网的话还不如买个 3G 网卡和带 USB 的路由,然后用 chat 读出来短信用 uci 写进配置然后拨号,全套全自动完成
acess
2015-11-03 12:32:29 +08:00
@lijsf 我看那个破解路由配套的 APP 貌似是走 LuCI 的,不知道有没有什么资料可以查?
little_cup
2015-11-03 12:41:44 +08:00
@acess 如果你那里的电信解谜后就是 pppoe 拨号的话,直接使用 sed 命令修改 /etc/config/network 中的 option username 和 option password 两行,再 /etc/init.d/network restart 就可以了。
acess
2015-11-03 12:52:26 +08:00
@little_cup 额,这个好像还可以用 uci 、 ifup 等命令搞定

我还要控制 WiFi 那边的 PPPoE 定时连接和断线,但这个办法应该可行,我有空就试试,谢谢你的建议。
电信已经换了标准的 PPPoE 协议,市面上的 SOHO 路由大多数都可以用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/233112

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX