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)