code: def _get_afi(self, ip):
          
  
          parts = unicode(ip).split("/")
          if len(parts) == 1:
              # just an address
              if self._is_ipv4(ip):
                  return 4
              elif self._is_ipv6(ip):
                  return 6
              else:
                  return None
          elif len(parts) == 2:
              # a prefix!
              try:
                  pl = int(parts[1])
              except ValueError:
                  # if casting parts[1] to int failes, this is not a prefix..
                  return None
  
              if self._is_ipv4(parts[0]):
                  if pl >= 0 and pl <= 32:
                      # prefix mask must be between 0 and 32
                      return 4
                  # otherwise error
                  return None
              elif self._is_ipv6(parts[0]):
                  if pl >= 0 and pl <= 128:
                      # prefix mask must be between 0 and 128
                      return 6
                  # otherwise error
                  return None
              else:
                  return None
          else:
              # more than two parts.. this is neither an address or a prefix
              return None
docs: Return address-family (4 or 6) for IP or None if invalid address