Advertisement
Guest User

Untitled

a guest
Feb 25th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. from datetime import datetime
  2. from Tools.DateParser import convert_to_unix_date # Parse Included In First GIST
  3.  
  4. __author__ = 'Amir'
  5. from routeros_api.api import RouterOsApiPool
  6.  
  7.  
  8. class MKUtils(object):
  9. def __init__(self, router, username='admin', password=''):
  10. if not router:
  11. raise Exception(message='Invalid Host Name')
  12. self.username = username
  13. self.password = password
  14. self.host = router
  15. self.api = RouterOsApiPool(router, username=username, password=password)
  16. self.con = self.api.get_api()
  17.  
  18. def get_user_bw(self, interface_name):
  19. res = self.con.get_resource('/interface').call('monitor-traffic', {'interface': interface_name, 'once': ''})
  20. res = {convert_to_unix_date(datetime.today()): [int(res[0]['rx-bits-per-second']) / 1024,
  21. int(res[0]['tx-bits-per-second']) / 1024]}
  22. # print res
  23. return res
  24.  
  25. def get_user_bw_by_name(self, username):
  26. return self.get_user_bw('<pppoe-%s>' % username)
  27.  
  28. def close(self):
  29. self.api.disconnect()
  30.  
  31. def get_user_by_ip(self, ip_address):
  32. try:
  33. res = self.con.get_resource('/ppp/active').call('print')
  34. for r in res:
  35. if r['address'] == ip_address:
  36. return r['name']
  37. return None
  38. except Exception as e:
  39. print e.message
  40.  
  41. def kill_user_by_username(self, username):
  42. if not isinstance(username, str):
  43. return False
  44. try:
  45. res = self.con.get_resource('/ppp/active').call('print')
  46. cntr = 0
  47. for r in res:
  48. if r['name'] == username:
  49. self.con.get_resource('/ppp/active').call('remove', {'numbers': str(cntr)})
  50. return True
  51. cntr += 1
  52. return False
  53. except Exception as e:
  54. print e.message
  55. return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement