所需环境python(用于http.post,也可用其他工具代替)
1.自动pppoe拨号
新建bat文件连接pppoe.bat
,输入以下内容:
RASDIAL 宽带连接 username passwd
其中,宽带连接
是pppoe的名称,username
和passwd
是上网的账号和密码。
然后新建bat文件断开pppoe.bat
,输入以下内容:
rasdial 宽带连接 /DISCONNECT
2.自动进行Web认证
首先使用chrome打开Web认证页面,以本校为例,打开网页http://10.6.8.2:904
,按F12或右键-检查,进入Network选项卡:
在Web认证页中点击登陆,就可以捕获本机发出的http请求,我只抓到一个包,如果有多个需要自己筛选找到post账号密码的包。
分析抓到的包,主要关注General,Request Headers和Form Data。
一边分析抓到的包,一边构造python代码,新建python文件auto-login.py:
import requests
import time
class INST(object):
def __init__(self, username, password):
pass
def _get_page(self):
pass
def _login(self, request):
pass
因为抓包显示用到了cookie,因此我们在_get_page()
方法中,利用session
保存会话,然后在_login()
方法中将登陆请求post给服务器。
- 构造
__init__():
def __init__(self, username, password):
self.username = username
self.password = password
self.UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36'
request = self._get_page()
for i in range(5):
if request.status_code != 200:
time.sleep(2)