123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import requests
- import json
- def 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_data
- def 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 None
- def 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 True
- def 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 s
- def 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
|