Python 实现电信天翼网关光猫自动重启
# -*- encoding:utf-8 -*-
"""
@author: @Suroy
@site: https://suroy.cn/
@email: suroy@qq.com
@time: 2021/8/12 10:48 上午
"""
import requests, re
# 登陆
def login():
url = "http://192.168.1.1/cgi-bin/luci"
payload='username=useradmin&psd=xxxx' # 用户名密码
headers = {
'Host': '192.168.1.1',
'Content-Length': '28',
'Cache-Control': 'max-age=0',
'Upgrade-Insecure-Requests': '1',
'Origin': 'http://192.168.1.1',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Referer': 'http://192.168.1.1/cgi-bin/luci',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive'
}
try:
response = requests.request("POST", url, headers=headers, data=payload, allow_redirects=False) # 禁止自动重定向,以便于获取cookies
cookies = response.cookies
cookie = requests.utils.dict_from_cookiejar(cookies)
response = requests.request("POST", url, headers=headers, data=payload, cookies = cookie)
except Exception as err:
print('获取数据失败:\n{0}'.format(err))
# print(response.text)
matchObj = re.search(r'([a-z]|[0-9]){32}', str(response.text))
if matchObj:
return matchObj.group(), cookies['sysauth']
else:
return False
# 重启
def reboot(token, cookie):
url = "http://192.168.1.1/cgi-bin/luci/admin/reboot"
payload='token=' + str(token) + '&t=123'
headers = {
'content-type': 'application/x-www-form-urlencoded',
'Cache-Control': 'max-age=0',
'Upgrade-Insecure-Requests': '1',
'Origin': 'http://192.168.1.1',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Referer': 'http://192.168.1.1/cgi-bin/luci',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Cookie': 'sysauth=' + str(cookie)
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
token, cookie = login()
reboot(token, cookie)
print('Reboot Success!')
原文地址:@Suroy