重邮上网之TP-Link

背景

我校连外网不光要给钱, 还要用电信给的拨号器(Netkeeper)才能拨号, 拨号器内部自己有一套账号密码的加密机制, 路由器直接拨PPPoE就不行。好在我在同学那里找到了一份python写的加密算法,因为有大神通过逆向的方式把这个加密算法撸出来了,向他致敬!

本文主题为教你如何用 TP-Link 在重邮同时连上内外网

代码操控 TP-Link 拨 PPPoE

之前听说可以用代码操控 TP-Link 拨 PPPoE,百思不得其解。后来才知道,其实就是模拟表单提交管理界面的连接信息。

首先你需要一个 Chrome,F12-Network 抓到拨号时的 Request。我抓到的 URL 如下:

http://192.168.1.1/userRpm/PPPoECfgRpm.htm?
&wan=0&wantype=2&VnetPap=201&linktype=4&wattime2=0&Connect=%%C1%%AC+%%BD%%D3
&acc={PPPoE账号}&psw={PPPoE密码}&confirm={密码确认}&specialDial=0&SecType=0

以上是 URL,当然不止 URL 了,还有 http 请求的 Header。关键内容在此:

Authorization: Basic blablablablabla
Accept: text/html
Referer: http://192.168.1.1/

其中的blablabla, 是一个经过base64加密然后稍微修改了的字符串。解开之后你会发现,其实就是这样算的:

"admin:admin".encode("base64")[0:-1]

admin:admin就是路由器管理平台的「账号:密码」

所以,我们只要把这个 http 请求模拟发出去就行啦~~

上不了内网?

对啊对啊,如果仅仅是像我上面那样发 http 请求的话,确实是不能连上内网。原因就在于根本就 ping 不通网关。所以第一步,我们就要先 ping 通网关。

动态IP

找了好久,终于找到 TP-Link 在 PPPoE 拨号页面有一个「第二连接」,里面可以选择「动态IP」。重新在 Network 中抓了一下 Http 请求。发现选择之后,URL 中有一个参数变了:

SecType=1

之前是0。其实也很好理解,Sec 是 Second 的缩写。。。SecType就是第二连接的类型。所以我们只需要把 SecType 改成1就可以开心发请求啦~(≧▽≦)/~

开了这个以后,确实可以 ping 到内网网关了。

有关内网网关

据说每栋的数字乘以四就是第三个数了。比如说我在22栋,网关就是172.18.88.1。实在不太信任这个计算方法,建议还是连一根网线看看内网网关是多少。

路由表

光能 ping 通网关必然是不行的,我们还要配路由表。

只需要往路由表里加这两个就可以了:

ID	目的网络地址	子网掩码	网关	
1	172.0.0.0	255.0.0.0	172.18.88.1
2	202.202.0.0	255.255.0.0	172.18.88.1

记得改成自己的网关。

玩得愉快!

不要找我要加密算法,知道的人太多不太好= =。