30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
|
|
import subprocess
|
|
import ipaddress
|
|
from typing import Dict, Any, List
|
|
|
|
# subnet helper app
|
|
def is_ip_in_subnets(ip, subnet):
|
|
try:
|
|
ip_obj = ipaddress.IPv4Address(ip)
|
|
subnet_obj = ipaddress.IPv4Network(subnet)
|
|
if ip_obj in subnet_obj:
|
|
return True
|
|
return False
|
|
except ValueError as e:
|
|
# If the IP address is not valid, raise an error
|
|
return False
|
|
|
|
# subroutine to run a command, return stdout as array unless zero_only then return [0]
|
|
def run_command(cmd, zero_only=False, use_shell=True, req_check = True):
|
|
# Run the command and capture the output
|
|
result = subprocess.run(cmd, shell=use_shell, check=req_check, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
# Decode the byte output to a string
|
|
output = result.stdout.decode('utf-8')
|
|
# Split the output into lines and store it in an array
|
|
output_lines = [line for line in output.split('\n') if line]
|
|
# Return result
|
|
try:
|
|
return output_lines[0] if zero_only else output_lines
|
|
except:
|
|
return output_lines |