def f_off_client(self, login_device, password_device, ip_device, api_port, ip_user, ip_local): try: a = Core(ip_device, api_port) a.login(login_device, password_device) #While disabling user it still stay exist enabled in arp #item = self.f_get_item_by_ip_in_arp_list(a, ip_user) #if not item is None: # a.response_handler(a.talk(["/ip/arp/disable", "=.id=" + item[".id"],])) """ip local""" item = self.f_get_item_by_ip_in_address_list(a, ip_local) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/disable", "=.id=" + item[".id"], ])) """ip vpn""" item = self.f_get_item_by_ip_in_address_list(a, ip_user) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/disable", "=.id=" + item[".id"], ])) #send_email(login_client, speed_down, "?", off_backup_date, "add user" ) return "worked" except: return "no"
def f_remove_client(self, login_device, password_device, ip_device, api_port, ip_local, ip_user): try: a = Core(ip_device, api_port) a.login(login_device, password_device) item = self.f_get_item_by_ip_in_arp_list(a, ip_local) if not item is None: a.response_handler( a.talk([ "/ip/arp/remove", "=.id=" + item[".id"], ])) item = self.f_get_item_by_ip_in_dhcplease_list(a, ip_local) if not item is None: a.response_handler( a.talk([ "/ip/dhcp-server/lease/remove", "=.id=" + item[".id"], ])) """remove local addr from firewall addresses""" item = self.f_get_item_by_ip_in_address_list(a, ip_local) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/remove", "=.id=" + item[".id"], ])) """remove vpn addr from firewall addres""" item = self.f_get_item_by_ip_in_address_list(a, ip_user) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/remove", "=.id=" + item[".id"], ])) item = self.f_get_item_by_ip_in_secrets(a, ip_user) if not item is None: a.response_handler( a.talk([ "/ppp/secret/remove", "=.id=" + item[".id"], ])) item = self.f_get_item_by_ip_in_queues(a, ip_local) if not item is None: a.response_handler( a.talk([ "/queue/simple/remove", "=.id=" + item[".id"], ])) except: return "no" return "worked"
def f_check_client(self, login_device, password_device, ip_device, api_port, ip_user): try: a = Core(ip_device, api_port) a.login(login_device, password_device) item = self.f_get_item_by_ip_in_address_list(a, ip_user) if not item is None: return "worked" else: return "no" except: return "no"
def f_on_client(self, login_device, password_device, ip_device, api_port, ip_user, ip_local, off_backup_date): try: current_loc = locale.getlocale() locale.setlocale(locale.LC_ALL, 'C') off_backup_txt_date = off_backup_date.strftime('%b/%d/%Y').lower() locale.setlocale(locale.LC_ALL, current_loc) a = Core(ip_device, api_port) a.login(login_device, password_device) #Do not touch arp as it's stay unmodified if disabling user #item = self.f_get_item_by_ip_in_arp_list(a, ip_user) #if not item is None: # a.response_handler(a.talk(["/ip/arp/enable", "=.id=" + item[".id"],])) # a.response_handler(a.talk(["/ip/arp/comment", "=comment=" + off_backup_txt_date, "=.id=" + item[".id"], ])) """ip local""" item = self.f_get_item_by_ip_in_address_list(a, ip_local) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/enable", "=.id=" + item[".id"], ])) a.response_handler( a.talk([ "/ip/firewall/address-list/comment", "=comment=" + off_backup_txt_date, "=.id=" + item[".id"], ])) """ip vpn""" item = self.f_get_item_by_ip_in_address_list(a, ip_user) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/enable", "=.id=" + item[".id"], ])) a.response_handler( a.talk([ "/ip/firewall/address-list/comment", "=comment=" + off_backup_txt_date, "=.id=" + item[".id"], ])) #send_email(ip_user"/"ip_local, "&", "?", off_backup_date, "on user" ) return "worked" except: return "no"
#!/usr/bin/python from RosAPI import Core from sys import argv try: a = Core(argv[1]) except: print("No connection") a.login("bgpmonlogin", "bgpmonpass") peers = a.response_handler(a.talk(["/routing/bgp/peer/print"])) peers_dict = {} if len(peers) > 0: for peer in peers: # print("{} {} {}".format(peer['remote-address'], peer['remote-as'], peer['established'])) peers_dict[peer['remote-address']] = peer['established'] if argv[2] in peers_dict: if peers_dict[argv[2]] == 'true': print(1) else: print(0) else: print(0)
#!/usr/bin/env python from RosAPI import Core def prettify(data): for x in data: for y in x.keys(): print "%-20s: %50s" % (y, x[y]) if __name__ == "__main__": a = Core("172.16.1.1") a.login("admin", "") #a.run_interpreter() prettify(a.response_handler(a.talk(["/ip/address/print"])))
def f_update_client(self, login_device, password_device, ip_device, api_port, name_field, old_value_field, new_value_field): try: a = Core(ip_device) a.login(login_device, password_device) if name_field == "update_ip": item = self.f_get_item_by_ip_in_address_list( a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/set", "=address=" + new_value_field, "=.id=" + item[".id"], ])) item2 = self.f_get_item_by_ip_in_secrets(a, old_value_field) if not item2 is None: a.response_handler( a.talk([ "/ppp/secret/set", "=remote-address=" + new_value_field, "=.id=" + item2[".id"], ])) if name_field == "update_mac": item = self.f_get_item_by_mac_in_arp_list(a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ip/arp/set", "=mac-address=" + new_value_field, "=.id=" + item[".id"], ])) item = self.f_get_item_by_mac_in_dhcplease_list( a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ip/dhcp-server/lease/set", "=mac-address=" + new_value_field, "=.id=" + item[".id"], ])) if name_field == "update_ip_local": item = self.f_get_item_by_ip_in_address_list( a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ip/firewall/address-list/set", "=address=" + new_value_field, "=.id=" + item[".id"], ])) item = self.f_get_item_by_ip_in_arp_list(a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ip/arp/set", "=address=" + new_value_field, "=.id=" + item[".id"], ])) item = self.f_get_item_by_ip_in_queues(a, old_value_field) if not item is None: a.response_handler( a.talk([ "/queue/simple/set", "=target-addresses=" + new_value_field, "=.id=" + item[".id"], ])) item = self.f_get_item_by_ip_in_dhcplease_list( a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ip/dhcp-server/lease/set", "=address=" + new_value_field, "=.id=" + item[".id"], ])) if name_field == "update_login": item = self.f_get_item_by_name_in_secrets(a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ppp/secret/set", "=name=" + new_value_field, "=.id=" + item[".id"], ])) item2 = self.f_get_item_by_name_in_queues(a, old_value_field) if not item2 is None: a.response_handler( a.talk([ "/queue/simple/set", "=name=" + new_value_field, "=.id=" + item2[".id"], ])) if name_field == "update_password": item = self.f_get_item_by_name_in_secrets(a, old_value_field) if not item is None: a.response_handler( a.talk([ "/ppp/secret/set", "=password="******"=.id=" + item[".id"], ])) if name_field == "update_queue": item = self.f_get_item_by_name_in_queues(a, old_value_field) if not item is None: if int(new_value_field) == 3 or int( new_value_field) == 2 or int( new_value_field) == 0 or int( new_value_field) == 1: """turbonet style queue""" queue = "Upload Tarif" + str( new_value_field) + "/Download Tarif" + str( new_value_field) a.response_handler( a.talk([ "/queue/simple/set", "=queue=" + queue, "=.id=" + item[".id"], ])) else: """pythonix style queue""" a.response_handler( a.talk([ "/queue/simple/set", "=max-limit=" + new_value_field, "=.id=" + item[".id"], ])) info_mes = "New tarif=" + str( new_value_field) + " for user: "******"/log/info", "=message=" + info_mes, ])) return "worked" except: return "no"
def f_add_client(self, login_device, password_device, ip_device, mac_user, ip_local_user, ip_user, login_client, password_client, speed_up, speed_down, address_list_name, unit, off_backup_date, api_port): try: current_loc = locale.getlocale() locale.setlocale(locale.LC_ALL, 'C') off_backup_txt_date = off_backup_date.strftime('%b/%d/%Y').lower() locale.setlocale(locale.LC_ALL, current_loc) a = Core(ip_device, api_port) a.login(login_device, password_device) if int(speed_down) == 3 or int(speed_down) == 2 or int( speed_down) == 0 or int(speed_down) == 1: """turbonet style queue""" queue = "Upload Tarif" + str( speed_up) + "/Download Tarif" + str(speed_down) a.response_handler( a.talk([ "/queue/simple/add", "=name=" + login_client, "=target-addresses=" + ip_local_user, "=queue=" + queue, ])) else: """pythonix style queue""" speed = str(speed_up) + "M/" + str(speed_down) + "M" a.response_handler( a.talk([ "/queue/simple/add", "=name=" + login_client, "=target-addresses=" + ip_local_user, "=max-limit=" + speed, ])) a.response_handler( a.talk([ "/ppp/secret/add", "=name=" + login_client, "=password="******"=local-address=" + ip_device, "=remote-address=" + ip_user, ])) a.response_handler( a.talk([ "/ip/arp/add", "=address=" + ip_local_user, "=mac-address=" + mac_user, "=interface=ether2-master-local", "=comment=" + login_client, ])) a.response_handler( a.talk([ "/ip/dhcp-server/lease/add", "=address=" + ip_local_user, "=mac-address=" + mac_user, "=comment=" + login_client, ])) """Check if address already added""" if self.f_get_item_by_ip_in_address_list(a, ip_user) is None: """add local addr """ a.response_handler( a.talk([ "/ip/firewall/address-list/add", "=address=" + ip_local_user, "=list=" + "internet", "=comment=" + off_backup_txt_date, ])) """add vpn addr """ a.response_handler( a.talk([ "/ip/firewall/address-list/add", "=address=" + ip_user, "=list=" + "internet", "=comment=" + off_backup_txt_date, ])) #send_email(login_client, speed_down, "?", off_backup_date, "add user" ) return "worked" except: return "no"
#!/usr/bin/env python from RosAPI import Core def prettify(data): for x in data: for y in x.keys(): print "%-20s: %50s" % (y, x[y]) if __name__ == "__main__": a = Core("192.168.101.254") a.login("user1", "user") #a.run_interpreter() #prettify(a.response_handler(a.talk(["/tool/torch","=interface=ether2 - Lokal","=src-address=192.168.101.160","=dst-address=218.45.174.214"]))) prettify( a.response_handler( a.talk([ "/tool/torch", "=interface=ether2 - Lokal", "=src-address=192.168.101.160", "=dst-address=0.0.0.0/0" ]))) #prettify(a.response_handler(a.talk(["/tool/torch","=interface=ether2 - Lokal","=src-address=192.168.101.160"])))