Escreva uma função para checar se uma string é um IPv4 ou IPv6 válidos.
Os endereços IPv4 são canonicamente representados na notação decimal com pontos, que consiste em quatro números decimais, cada um variando de 0 a 255, separados por pontos ("."), Por exemplo, 172.16.254.1;
Além disso, zeros à esquerda no IPv4 são inválidos. Por exemplo, o endereço 172.16.254.01 é inválido.