You are currently viewing Parsing Network Device Output with Regular Expressions in Python
Parsing Network Device Output with Regular Expressions in Python

Parsing Network Device Output with Regular Expressions in Python

When automating network devices with Python, it’s common to need to parse the output of commands executed on the devices. Regular expressions provide a powerful and flexible way to extract data from the output of commands. Parsing Network Device

Here’s an example of using regular expressions to parse the output of a “show interfaces” command on a Cisco IOS router:

import re
from netmiko import ConnectHandler

device = {
    'device_type': 'cisco_ios',
    'ip': '192.168.1.1',
    'username': 'admin',
    'password': 'password'
}

connection = ConnectHandler(**device)
output = connection.send_command('show interfaces')

# Define a regular expression pattern to match interface data
pattern = r"(\S+)\s+is\s+(up|down),\s+line protocol is\s+(up|down)"

# Use the findall function to extract interface data from the output
interfaces = re.findall(pattern, output)

# Print the interface data
for interface in interfaces:
    print("Interface: {}".format(interface[0]))
    print("Status: {}".format(interface[1]))
    print("Line protocol: {}".format(interface[2]))
    print()
    
connection.disconnect()

In this example, we import the re module for regular expressions and the ConnectHandler class from the netmiko library. We connect to a Cisco IOS router and execute the show interfaces command. Then define a regular expression pattern to match interface data in the output of the command. We use the findall function to extract all instances of the pattern in the output.

The resulting interfaces variable is a list of tuples, with each tuple containing the interface name, status, and line protocol. We then iterate over the interfaces list and print the data for each interface.

Regular expressions can be used to extract data from a wide variety of network device commands. By using regular expressions, you can automate the process of parsing device output and extract the data you need for your network automation tasks.

Subscribe my Youtube Channel for more Tech and latest trend related videos.

https://www.youtube.com/@techknowledgehuborg

Leave a Reply