]> git.ipfire.org Git - location/libloc.git/commitdiff
Implement listing all IP addresses in an AS
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 3 Oct 2019 18:41:38 +0000 (18:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 3 Oct 2019 18:41:38 +0000 (18:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/python/location-query.in

index c3d1910d51196301ad66a6e8cb5f11fb7fd43a6c..e8bc19e2915cc0dfbc4374bca071b8e918a60ce0 100644 (file)
@@ -73,6 +73,13 @@ class CLI(object):
                search_as.add_argument("query", nargs=1)
                search_as.set_defaults(func=self.handle_search_as)
 
+               # List all networks in an AS
+               list_networks_by_as = subparsers.add_parser("list-networks-by-as",
+                       help=_("Lists all networks in an AS"),
+               )
+               list_networks_by_as.add_argument("asn", nargs=1, type=int)
+               list_networks_by_as.set_defaults(func=self.handle_list_networks_by_as)
+
                # List all networks in a country
                search_as = subparsers.add_parser("list-networks-by-cc",
                        help=_("Lists all networks in a country"),
@@ -181,6 +188,12 @@ class CLI(object):
                        for a in db.search_as(query):
                                print(a)
 
+       def handle_list_networks_by_as(self, db, ns):
+               for asn in ns.asn:
+                       # Print all matching networks
+                       for n in db.search_networks(asn=asn):
+                               print(n)
+
        def handle_list_networks_by_cc(self, db, ns):
                for country_code in ns.country_code:
                        # Print all matching networks