Exemplo n.º 1
0
def do_something(params):
    device_connection = Device(**params)
    device_connection.open()
    # device_connection.facts_refresh()
    facts = device_connection.facts

    # response_xml_element = device_connection.rpc.get_software_information(normalize=True)
    # print(etree.tostring(response_xml_element))
    # pprint(facts)

    print("{0} {1} {0}".format('=' * 37, facts['hostname']))

    routing_table = RouteTable(device_connection)
    routing_table.get()
    print("RIB:")
    for prefix in routing_table:
        print(f"Destination : {prefix.key}\n"
              f"Via: {prefix.via}\n"
              f"Nexthop: {prefix.nexthop}\n"
              f"Protocol: {prefix.protocol}\n\n")

    print("{}".format('=' * 80))

    arp_table = ArpTable(device_connection)
    arp_table.get()
    print("ARP table:")
    for entry in arp_table:
        print(f"IP : {entry.ip_address}\n"
              f"MAC: {entry.mac_address}\n"
              f"Interface: {entry.interface_name}\n\n")

    device_connection.close()
Exemplo n.º 2
0
def main():
    module = AnsibleModule(
        argument_spec=dict(
            host=dict(required=True),
            targets=dict(required=False, default=None),
            checktype=dict(required=False, default='pre'),
            user=dict(required=False, default=os.getenv('USER')),
            passwd=dict(required=False, default=None)),
        supports_check_mode=False)

    m_args = module.params
    m_results = dict(changed=False)
    dev = Device(m_args['host'], user=m_args['user'], passwd=m_args['passwd'])
    try:
        dev.open()
        results = {}
        ping_results = []
        if m_args['checktype'] == 'pre':
            try:
                arp = ArpTable(dev)
                arp.get()
                arp_json = json.loads(json.dumps(arp, cls=TableJSONEncoder))
                for entry in arp_json:
                    ping_results.append(dev.rpc.ping
                                        (host=arp_json[entry]['ip_address'],
                                         count='3', rapid=True))
                for entry in ping_results:
                    ip = entry.findtext('target-ip').replace('\n', '')
                    results[ip] = {}
                    if entry.findtext('ping-success') is not None:
                        results[ip]['success'] = True
                    else:
                        results[ip]['success'] = False
            except Exception as err:
                module.fail_json(msg=err)
        elif m_args['targets'] is not None:
            import ast
            m_args['targets'] = ast.literal_eval(m_args['targets'])
            for entry in m_args['targets']:
                if m_args['targets'][entry]['success'] == True:
                    ping_results.append(dev.rpc.ping
                                        (host=entry, count='3', rapid=True))
            for entry in ping_results:
                ip = entry.findtext('target-ip').replace('\n', '')
                results[ip] = {}
                if entry.findtext('ping-success') is not None:
                    results[ip]['success'] = True
                else:
                    results[ip]['success'] = False
        else:
            module.fail_json(msg='You specified a post-check \
                             but did not specify targets.')
    except Exception as err:
        msg = 'unable to connect to {}: {}'.format(m_args['host'], str(err))
        module.fail_json(msg=msg)
        return
    else:
        dev.close()
        module.exit_json(results=results)
Exemplo n.º 3
0
def gather_arp_table():
    '''Return the ARP table from the device'''
    # Pass in NETCONF connection to the ARPTable object
    arp_entries = ArpTable(device_conn)
    # Retrieve the ARP entries in dictionary like format
    arp_entries.get()

    return arp_entries
Exemplo n.º 4
0
def gather_arp_table():

    DEV = check_connected()
    ARP_TABLE = ArpTable(DEV)
    ARP_TABLE.get()
    #print("\n")
    #print("Printing ARP TABLE")
    #print("-"*30)
    #pprint(ARP_TABLE.items())
    return ARP_TABLE.items()
def procedimiento_arp(ip, user, passwd):
    print "Tabla ARP para host %s" % ip
    dev = Device(host=ip, user=user, passwd=passwd)
    dev.open()
    arp_list = ArpTable(dev)
    arp_list.get()
    for arp_elem in arp_list:
        print " arp %s asociada a ip %s por interfaz %s" % (arp_elem.mac_address, arp_elem.ip_address, arp_elem.interface_name)
    print "\n"    
    time.sleep(2)
    dev.close()
Exemplo n.º 6
0
def print_arp(hostname):
    dev = Device(user=username, host=hostname, password=password)

    dev.open()

    arp_table = ArpTable(dev).get()

    for arp in arp_table:
        print hostname, arp.interface_name, arp.ip_address, arp.mac_address

    dev.close()
Exemplo n.º 7
0
def get_arp_table(args):
    """
    Connect to device over NETCONF protocol and obtain arp table.
    This uses jnpr.junos.op.arp.ArpTable
    """

    dev = Device(host=args['hostname'],
                 user=args['user'],
                 ssh_private_key_file=args['sshkey'],
                 ssh_config=args['sshconfig'])

    try:
        dev.open()
    except:
        print('Unexpected error with NETCONF connection.  Try `ssh ' +
              args['hostname'] + '`')
        exit(3)

    arps = ArpTable(dev).get()
    dev.close()

    return arps
Exemplo n.º 8
0
def gather_arp(device):
    arp = ArpTable(device)
    arp.get()
    return arp
Exemplo n.º 9
0
def gather_arp_table(device):
    arp_table = ArpTable(device)
    arp_table.get()
    return arp_table
Exemplo n.º 10
0
def gather_arp_table(device):
    # Create ArpTable view object
    arp = ArpTable(device)
    # Get all arp information
    arp.get()
    return arp
Exemplo n.º 11
0
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              targets=dict(required=False,
                                                           default=None),
                                              checktype=dict(required=False,
                                                             default='pre'),
                                              user=dict(
                                                  required=False,
                                                  default=os.getenv('USER')),
                                              passwd=dict(required=False,
                                                          default=None)),
                           supports_check_mode=False)

    m_args = module.params
    m_results = dict(changed=False)
    dev = Device(m_args['host'], user=m_args['user'], passwd=m_args['passwd'])
    try:
        dev.open()
        results = {}
        ping_results = []
        if m_args['checktype'] == 'pre':
            try:
                arp = ArpTable(dev)
                arp.get()
                arp_json = json.loads(json.dumps(arp, cls=TableJSONEncoder))
                for entry in arp_json:
                    ping_results.append(
                        dev.rpc.ping(host=arp_json[entry]['ip_address'],
                                     count='3',
                                     rapid=True))
                for entry in ping_results:
                    ip = entry.findtext('target-ip').replace('\n', '')
                    results[ip] = {}
                    if entry.findtext('ping-success') is not None:
                        results[ip]['success'] = True
                    else:
                        results[ip]['success'] = False
            except Exception as err:
                module.fail_json(msg=err)
        elif m_args['targets'] is not None:
            import ast
            m_args['targets'] = ast.literal_eval(m_args['targets'])
            for entry in m_args['targets']:
                if m_args['targets'][entry]['success'] == True:
                    ping_results.append(
                        dev.rpc.ping(host=entry, count='3', rapid=True))
            for entry in ping_results:
                ip = entry.findtext('target-ip').replace('\n', '')
                results[ip] = {}
                if entry.findtext('ping-success') is not None:
                    results[ip]['success'] = True
                else:
                    results[ip]['success'] = False
        else:
            module.fail_json(msg='You specified a post-check \
                             but did not specify targets.')
    except Exception as err:
        msg = 'unable to connect to {}: {}'.format(m_args['host'], str(err))
        module.fail_json(msg=msg)
        return
    else:
        dev.close()
        module.exit_json(results=results)
Exemplo n.º 12
0
from jnpr.junos import Device
from jnpr.junos.op.arp import ArpTable
from getpass import getpass
from pprint import pprint

srx2 = Device(host="srx2.lasthop.io", user="******", password=getpass())
srx2.open()

arp_entries = ArpTable(srx2)
arp_entries.get()

print(arp_entries)
print(arp_entries.keys())
pprint(arp_entries.values())
pprint(arp_entries.items())
Exemplo n.º 13
0
    print '-' * 20


a_device = Device(**juniper_srx)
a_device.open()

eth_ports = EthPortTable(a_device)
eth_ports.get()
print '-' * 80
print "Ethernet Ports"
for k, v in eth_ports.items():
    juniper_print(k, v)
print '-' * 80
raw_input("Hit enter to continue: ")

arp = ArpTable(a_device)
arp.get()
print '-' * 80
print "ARP"
for k, v in arp.items():
    juniper_print(k, v)
print '-' * 80
raw_input("Hit enter to continue: ")

lldp = LLDPNeighborTable(a_device)
lldp.get()
print '-' * 80
print "LLDP Neighbors"
for k, v in lldp.items():
    juniper_print(k, v)
print '-' * 80
Exemplo n.º 14
0
def gather_arp_table():
    arp_table = ArpTable(connection)
    arp_table.get()
    return dict(arp_table.items())
Exemplo n.º 15
0
ports.items()
ports.values()

ports['fe-0/0/1']
ports['fe-0/0/1'].items()
for k,v in ports['fe-0/0/1'].items():
	print k, v

ports['fe-0/0/1']['oper']
ports['fe-0/0/1']['macaddr']



from jnpr.junos.op.arp import ArpTable
arp_entries = ArpTable(a_device)
arp_entries.get()
arp_entries.items()
arp_entries.keys()
arp_entries.values()


from jnpr.junos.op.phyport import PhyPortTable
phy_ports = PhyPortTable(a_device)
phy_ports.get()
phy_ports.items()
phy_ports.keys()
phy_ports.values()
phy_ports['fe-0/0/1']
phy_ports['fe-0/0/1'].keys()
phy_ports['fe-0/0/1'].items()
Exemplo n.º 16
0
def gather_arp_tables(a_device):
    arp_entries = ArpTable(a_device)
    arp_entries.get()
    return arp_entries
Exemplo n.º 17
0
from jnpr.junos.op.arp import ArpTable
from jnpr.junos import Device
r0 = Device(host='172.16.1.250', user='******', password='******').open()
arp_table = ArpTable(r0)
arp_table.get()
type(arp_table)
from pprint import pprint
pprint(arp_table())
Exemplo n.º 18
0
    if "Raspberry Pi Foundation" in vendor:
        k.update(os="Linux", category="Internet of Things (IoT)")


while var == 1:
    for switch in list:
        splitlist = switch.split(' ')
        device = splitlist[0]
        username = splitlist[1]
        password = splitlist[2]
        dev = Device(device, user=username, password=password)

        try:
            dev.open()
            #Retrieve ARP Table
            arp_table = ArpTable(dev)
            arp_table.get()
            #Retrieve Ethernet Switching table
            eth_table = EtherSwTable(dev)
            eth_table.get()
            #Retrieve DHCP Snooping Table
            DHCP_table = DHCPSnoopTable(dev)
            DHCP_table.get()
            print DHCP_table
            LLDP_table = LLDPTable(dev)
            LLDP_table.get()
            print LLDP_table

            serial_number = dev.facts['serialnumber']
            switch_hostname = dev.facts['hostname']
Exemplo n.º 19
0
def gather_arp_table(device):
    #This will also return a dict-like object that can be list or dict-ified
    arp_table = ArpTable(device)
    arp_table.get()
    return arp_table
Exemplo n.º 20
0
def gather_arp_table(jnpr_device_obj):
   ''' returns arp table for juniper device obj '''
   arp_table_obj = ArpTable(jnpr_device_obj)
   arp_table = arp_table_obj.get()
   return arp_table
Exemplo n.º 21
0
def gather_arp_table(device):
    arp_table = ArpTable(device)
    arp_entries = arp_table.get()
    return(arp_entries.items())
Exemplo n.º 22
0
def gather_arp_table(jnpr_device):
    arp_table = ArpTable(jnpr_device)
    arp_table = dict(arp_table.get().items())

    return arp_table
Exemplo n.º 23
0
def gather_arp_table(device):
    arp = ArpTable(srx_device())
    arp.get()
    return arp
Exemplo n.º 24
0
from jnpr.junos import Device
from jnpr.junos.op.arp import ArpTable
from getpass import getpass

a_device = Device(host="srx2.lasthop.io", user="******", password=getpass())
a_device.open()

arp_entries = ArpTable(a_device)
arp_entries.get()
Exemplo n.º 25
0
def gather_arp_table(device):
    return ArpTable(device).get()