Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import urllib3
- urllib3.disable_warnings()
- URL = ""
- USER = ""
- PASSWORD = ""
- STEP = 1000
- HTTP = urllib3.PoolManager()
- def safe_json_decode(v):
- try:
- return json.loads(v)
- except ValueError:
- return None
- def body(start, limit):
- d = {'action': 'DeviceRouter',
- 'data': [{'keys': ['name', 'ipAddressString'],
- 'limit': limit,
- 'start': start,
- },
- ],
- 'method': 'getDevices',
- 'tid': 1}
- return json.dumps(d)
- def headers():
- h = urllib3.make_headers(basic_auth='{0}:{1}'.format(USER, PASSWORD))
- h["Content-Type"] = "application/json"
- return h
- def do_request(start, limit):
- resp = HTTP.request("POST", URL, headers=headers(), body=body(start, limit), timeout=50)
- return resp.data.decode()
- def get_devices_list():
- start = 0
- rv = dict()
- done = False
- while True:
- raw = do_request(start, STEP)
- data = safe_json_decode(raw)
- if not data:
- break
- devices = data['result']['devices']
- count = len(devices)
- rv.update(
- dict((v['ipAddressString'], v['name']) for v in devices),
- )
- if count < STEP:
- done = True
- break
- start = start + count
- return rv if done else None
- d = get_devices_list()
- print(d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement