docs: def get_asns(self, privaddr=0):
          """Obtain associated AS Numbers for IPv4 Addreses.
             privaddr: 0 - Normal display of AS numbers,
                       1 - Do not show an associated AS Number bound box (cluster) on graph for a private IPv4 Address."""
          ips = {}
          if privaddr:
              for k, v in self._ips.items():
                  if not is_private_addr(k):
                      ips[k] = v
          else:
              ips = self._ips
          #
          # Special case for the loopback IP Address: 127.0.0.1 - Do not ASN resolve...
          if '127.0.0.1' in ips:
              del ips['127.0.0.1']
          #
          # ASN Lookup...
          asnquerylist = dict.fromkeys(map(lambda x: x.rsplit(" ", 1)[0], ips)).keys()
          if self._asres is None:
              asnlist = []
          else:
              try:
                  asnlist = self._asres.resolve(*asnquerylist)
              except:
                  pass
          for ip, asn, desc, in asnlist:
              if asn is None:
                  continue
              iplist = self._asns.get(asn, [])  # Get previous ASN value
              iplist.append(ip)			# Append IP Address to previous ASN
  
              #
              # If ASN is a string Convert to a number: (i.e., 'AS3257' => 3257)
              if type(asn) == str:
                  asn = asn.upper()
                  asn = asn.replace('AS', '')
                  try:
                      asn = int(asn)
                      self._asns[asn] = iplist
                      self._asds[asn] = desc
                  except:
                      continue
              else:
                  self._asns[asn] = iplist
                  self._asds[asn] = desc