unción @PHP para validar IPv4 e IPv6 usando regex

Necesito crear una función para IPv4 y v6 que también uso las IP locales.

Lo que sé es un IPv4 válido varía de 0.0.0.0 a 255.255.255.255. Lo que sé de IPv6 es limitado, sin embargo, a pesar de que existe desde hace un tiempo, realmente no he investigado mucho hasta hoy. Pero quiero probar en el futuro la función que estoy haciendo un poco mientras la mantengo un poco retro por el momento. No estoy seguro de cuáles son los rangos válidos para IPv6.

Anyway En general, lo que estoy pensando es una función en la medida de

function validateIP($ip, $vSix = NULL)
{
    if($vSix !== NULL)
    {
      if(preg_match([regex-to-validate-ipv6], $ip))
      {
        return true;
      }
      else
      {
        return false;
      }
    }

    if(preg_match([regex-to-validate-ipv4], $ip))
    {
      return true;
    }
    else
    {
      return false;
    }
}

mi cosa es que apesta con regex, así que no tengo idea de cómo escribir uno que valide v4 o 6. También sería bueno un control de cordura en el concepto de función anterior.

Respuestas a la pregunta(12)

Su respuesta a la pregunta