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&para=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

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×