示例#1
0
    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"
示例#2
0
    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"
示例#3
0
    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"
示例#4
0
    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"
示例#5
0
#!/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)
示例#6
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"])))
示例#7
0
    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"
示例#8
0
    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"
示例#9
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("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"])))