tplink水星路由器操做

#!/usr/bin/python
# -*- coding: UTF-8 -*-
'''##################################
tp link

/
{"login":{"encrypt_type":1,"password":"h6m5ElVjhitXbzPz00jCoNLGAA4MkoPmt81ZMxPqT3DT%2F%2BsbF%2BLPEndrACsLpMuGyh30Y2uGyD59ZN%2BvdxEXiMvXb%2BvWwbW9SuG27Ej38edXBIHHh2fAHpqE4wpNnK%2BwGkoV%2FU1U624M3Mc4zg2dU%2BUWGHfe%2B0haMj31pSVnMQo%3D"},"method":"do"}
響應
{"stok":"c43f7f0011cc41ef76ac665fa63898cd","error_code":0}

POST http://192.168.1.*/stok=3a431d10fe0dfe66627cb3b9bfd56b7d/ds
/*
Host: 192.168.1.*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
*/
Content-Length: 40
/*
Origin: http://192.168.1.*
Connection: keep-alive
Referer: http://192.168.1.*/
*/
{"system":{"reboot":null},"method":"do"}
響應
{"wait_time":65,"error_code":0}


##################################'''

############ python3. #############
import os
import time

import urllib
import urllib.request
import json

###############################configs####################################
ip="192.168.1.*"
limit_time=2
on=2

###############################libs####################################
import subprocess
def cmd(cmd,t=0):
	os.system(cmd)
	return 0
        
	p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
	if(t>0):
		time.sleep(t)
	stdout, stderr = p.communicate()
	exit_code = p.returncode

def urllib_use(url,mode="get",data=""):
	print("urllib use")

	'''
	data={
		"abc":"XXXXX",
		"efg":"XXXXX"
		}
	'''

	#headers = {}
	#headers = {'Content-Type': 'application/json'} # 設置請求頭
	if(mode=="get"):
		request = urllib.request.Request(url=url, data=None, timeout=10)
	elif(mode=="post"):
		#request = urllib.request.Request(url=url, headers=headers, data=json.dumps(data).encode(encoding='UTF8')) # 須要經過encode設置編碼 要不會報錯
		request = urllib.request.Request(url=url, data=json.dumps(data).encode(encoding='UTF8'))

	response = urllib.request.urlopen(request) # 發送請求
	result = response.read().decode() # 讀取對象 將返回的二進制數據轉成string類型
	print(result)

	def file_append(content,file_url='log.txt',encoding = 'utf-8'):
		fo = open(file_url,'a+',encoding = encoding)
		fo.write(content+"\n\r--------------------------------------------\n\r") 
		fo.close()
	file_append(result)

	return result

##################################steps################################################
# cmd('netsh wlan connect name="******"')
# time.sleep(10)

post_data={
"login":{"encrypt_type":1,"password":"h6m5ElVjhitXbzPz00jCoNLGAA4MkoPmt81ZMxPqT3DT%2F%2BsbF%2BLPEndrACsLpMuGyh30Y2uGyD59ZN%2BvdxEXiMvXb%2BvWwbW9SuG27Ej38edXBIHHh2fAHpqE4wpNnK%2BwGkoV%2FU1U624M3Mc4zg2dU%2BUWGHfe%2B0haMj31pSVnMQo%3D"},
"method":"do"
}
result=urllib_use("http://"+ip,"post",post_data)

result=json.loads(result)
identity='stok'
print(result[identity])

#http://192.168.1.*/stok=gqZStE%2B%2Bp1NOm3zmsa*xo%5BSsR%7C%5B7SuSk/ds
url_set="http://"+ip+'/'+identity+"="+result[identity]+'/'+"ds"

post_router_reboot={
	"system":{"reboot":'null'},
	"method":"do"
}
urllib_use(url_set,"post",post_router_reboot)
相關文章
相關標籤/搜索