| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | import requestsimport jsondef prepare(settings):	if settings["dhcp"] == 1.000000000:		settings["dhcp"] = "on"	if settings["dhcp"] == 0:		settings["dhcp"] = "off"	if settings["pgw_en"] == True:		settings["pgw_en"] = "on"	elif settings["pgw_en"] == False:		settings["pgw_en"] = "off"	print settings	post_data = "&read_community=" 		+ settings["read_community"] + \		"&write_community=" 			+ settings["write_community"] + \		"&managerIP=" 					+ settings["managerIP"] + \		"&managerIP2=" 					+ settings["managerIP2"] + \		"&managerIP3=" 					+ settings["managerIP3"] + \		"&managerIP4=" 					+ settings["managerIP4"] + \		"&managerIP5=" 					+ settings["managerIP5"] + \		"&di1=" 						+ settings["di1"] + \		"&di_name1=" 					+ settings["di_name1"] + \		"&di2=" 						+ settings["di2"] + \		"&di_name2=" 					+ settings["di_name2"] + \		"&type_ts1=" 					+ str(settings["type_ts1"]) + \		"&type_ts2=" 					+ str(settings["type_ts2"]) + \		"&ipaddr=" 						+ settings["ipaddr"] + \		"&gw=" 							+ settings["gw"] + \		"&mask=" 						+ settings["mask"] + \		"&dhcp=" 						+ settings["dhcp"] + \		"&pgw_en=" 						+ settings["pgw_en"] + \		"&pgw_port=" 					+ settings["pgw_port"] + \		"&pgw_baud=" 					+ str(settings["pgw_baud"]) + \		"&pgw_par=" 					+ str(settings["pgw_par"]) + \		"&pgw_ndata=" 					+ str(settings["pgw_ndata"]) + \		"&pgw_nstop=" 					+ str(settings["pgw_nstop"]) + \		"&ntp=" 						+ settings["ntp"] + \		"&ntpservip=" 					+ settings["ntpservip"] + \		"&ups_cell_min=" 				+ settings["ups_cell_min"] + \		"&ups_cell_max=" 				+ settings["ups_cell_max"] + \		"&mainvolt_high=" 				+ settings["mainvolt_high"] + \		"&mainvolt_low=" 				+ settings["mainvolt_low"] + \		"&mainvolt_hist=" 				+ settings["mainvolt_hist"] + \		"&temp_high=" 					+ settings["temp_high"] + \		"&temp_low=" 					+ settings["temp_low"] + \		"&temp_hist=" 					+ settings["temp_hist"] + \		"&case_temp_high=" 				+ settings["case_temp_high"] + \		"&case_temp_low=" 				+ settings["case_temp_low"] + \		"&case_temp_hist=" 				+ settings["case_temp_hist"]	return post_datadef get(ip, session):	r = session.get("http://" + ip + "/settings.cgi", cookies = session.cookies, timeout = 1)		if r.status_code != 200:		return None	try:		return r.json()	except:		return Nonedef post(ip, session, post_data):	r = session.post("http://" + ip + "/settings.cgi", cookies = session.cookies, data=post_data, timeout = 1)	if r.status_code != 200:		return False		return Truedef login(ip):	s = requests.Session()	data = {"login":"admin", "password":"12345"}	r = s.post("http://" + ip + "/login.cgi", data)	if r.status_code != 200:		return None		return sdef change(ip, session, baudrate = None, bytesize = None, parity = None, stopbits = None, enable = True):	params = get(ip, session)	if params == None:		return False	#Enable by default	params["pgw_en"] = enable	params["pgw_baud"] = baudrate	params["pgw_ndata"] = bytesize	if parity == 'N':		params["pgw_par"] = "no"	if parity == 'E':		params["pgw_par"] = "ev"	if parity == 'O':		params["pgw_par"] = "od"	params["pgw_nstop"] = stopbits	post(ip, session, prepare(params))	return True
 |