import subprocess
import csv
import re
# Voer het externe commando uit en vang de uitvoer op
command_output = subprocess.check_output(["asterisk", "-rx", "database show registrar"], universal_newlines=True)
# Initialiseer een lege lijst om gegevens op te slaan
data = []
# Definieer een reguliere expressie om de gewenste informatie uit de uitvoer te extraheren
pattern = re.compile(r'via_addr":"(.*?)".*?user_agent":"(.*?)"')
# Zoek naar overeenkomsten in de uitvoer en voeg deze toe aan de lijst
matches = pattern.findall(command_output)
for match in matches:
via_addr, user_agent = match
data.append((via_addr, user_agent))
# Schrijf de gegevens naar een CSV-bestand
with open('registrars.csv', 'w', newline='') as csvfile:
csv_writer = csv.writer(csvfile)
csv_writer.writerow(['via_addr', 'user_agent'])
csv_writer.writerows(data)