Dr.COM 自动认证脚本(EPortal、客户端更新)
本文主要针对在 Dr.COM EPortal 环境下,Linux 终端机无法打开计费页面,导致无法上网,通过本文,你将了解到采用命令的方式,登录计费系统。
本文为 Dr.COM 认证脚本合集的续篇。
认证命令
本命令以来 curl,如果你的设备中没有安装 curl,请预先安装好。
约定 EPortal 的服务器地址为 192.168.1.1,端口为 808。
curl 'https://192.168.1.1:808/eportal/?c=ACSetting&a=Login&loginMethod=1&protocol=https%3A&hostname=192.168.1.1&port=&iTermType=1&wlanuserip=[需认证ip]&wlanacip=null&wlanacname=null&redirect=null&session=null&vlanid=0&mac=00-00-00-00-00-00&ip=[需认证ip]&enAdvert=0&jsVersion=2.4.3&DDDDD=[帐号]&upass=[密码]&R1=0&R2=0&R3=0&R6=0¶=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=&v6ip=' -k
思考
Dr.COM 的 Portal 认证一般由客户端通过 JavaScript 代码向计费服务器发起认证请求的。所以,不要忽视页面中引用的 JS 文件,你会发现上述代码中定义的值都是有因有果,但在这里不便于展开谈。
善于运用 Chrome 浏览器的 F12 功能,分析浏览器到服务器的请求内容。必要时候可以使用 Wireshark 或者科来网络分析系统进行请求分析。
自动化认证脚本
EPortal 服务器会劫持 DNS 解析请求,在没有登录计费系统的情况下,所有域名解析的结果都会指向 EPortal 服务器,所以,按照原来使用 Ping 域名探测网络通不通的方法已经不在有效。但可以通过把域名改为 IP 地址来避免 DNS 污染。以下是 Shell 的例子,其他平台大家可以参照上文,自行实现。
#!/usr/bin/env bash
while true; do
if ping -c 1 114.114.114.114 >/dev/null 2>&1; then
echo NETWORK OK
sleep 5s
else
echo DRCOMING
// 这里填写认证命令
sleep 5s
fi
done
客户端认证
某些环境下是需要使用客户端登录计费系统的,默认是禁止网络共享的,不能私挂路由器等设备,请参考GitHub DrCOM中的项目。
Enjoy
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 弹霄博科!