aboutsummaryrefslogtreecommitdiff
path: root/myrpki.rototill/apnic-to-csv.py
blob: fdbbe9b7430549567180905b25647f30b4dfc797 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import csv, myrpki, rpki.ipaddrs

translations = dict((src, dst) for src, dst in myrpki.csv_reader("translations.csv", columns = 2))

asns     = myrpki.csv_writer("asns.csv")
prefixes = myrpki.csv_writer("prefixes.csv")

for line in open("delegated-apnic-extended-latest"):

    line = line.rstrip()

    if not line.startswith("apnic|") or line.endswith("|summary"):
        continue

    registry, cc, rectype, start, value, date, status, opaque_id = line.split("|")

    assert registry == "apnic"

    opaque_id = translations.get(opaque_id, opaque_id)

    if rectype == "asn":
        asns.writerow((opaque_id, "%s-%s" % (start, int(start) + int(value) - 1)))

    elif rectype == "ipv4":
        prefixes.writerow((opaque_id, "%s-%s" % (start,
                                                 rpki.ipaddrs.v4addr(rpki.ipaddrs.v4addr(start) + long(value) - 1))))

    elif rectype == "ipv6":
        prefixes.writerow((opaque_id, "%s/%s" % (start, value)))