File us-Update-get_as_size.patch of Package python-pyasn

From 4aa80e9a169713b45a7420f926ccca828a493e70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Jaquemet?= <loic.jaquemet+github@gmail.com>
Date: Thu, 19 Sep 2024 08:20:57 -0600
Subject: [PATCH] Update get_as_size for ipv4/ipv6 (#78)

Fix description and code of get_as_size to only count prefix size for IPv4.
Add get_as_size _v6 to count prefix size for IPv6 prefixes
---
 pyasn/__init__.py | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/pyasn/__init__.py b/pyasn/__init__.py
index 7fea326..dce726f 100644
--- a/pyasn/__init__.py
+++ b/pyasn/__init__.py
@@ -161,14 +161,26 @@ def get_as_prefixes_effective(self, asn):
 
     def get_as_size(self, asn):
         """
-        Returns the size of an AS as the total count of IP addresses that the AS is responsible for
+        Returns the size of an AS as the total count of IPv4 addresses that the AS is responsible for
         :param asn: The autonomous system number
-        :return: number of unique IP addresses routed by AS
+        :return: number of unique IPv4 addresses routed by AS
         """
         prefixes = self.get_as_prefixes_effective(asn)
         if not prefixes:
             return 0
-        size = sum([2 ** (32 - int(px.split('/')[1])) for px in prefixes])
+        size = sum([2 ** (32 - int(px.split('/')[1])) for px in prefixes if ':' not in px])
+        return size
+
+    def get_as_size_v6(self, asn):
+        """
+        Returns the size of an AS as the total count of IPv6 addresses that the AS is responsible for
+        :param asn: The autonomous system number
+        :return: number of unique IPv6 addresses routed by AS
+        """
+        prefixes = self.get_as_prefixes_effective(asn)
+        if not prefixes:
+            return 0
+        size = sum([2 ** (128 - int(px.split('/')[1])) for px in prefixes if ':' in px])
         return size
 
     def get_as_name(self, asn):
openSUSE Build Service is sponsored by