'------------------------------------------------------------------------------------
'Funcao: CheckDominio(ByVal Dominio)
'Sinopse: Verifica se o domínio é válido através de Expressão regular validando
' os DPNs de acordo com o IANA
'Parametro: Dominio
'Retorno: Booleano
'Autor: Gabriel Fróes - www.codigofonte.com.br
'------------------------------------------------------------------------------------
Function CheckDominio(ByVal Dominio)
'Declarações
Dim regEx
Dim Retorno
'Validando via RegExp
Set regEx = New RegExp 'Cria o Objeto Expressão
regEx.Pattern = "^([a-z0-9]([-a-z0-9]*[a-z0-9])?\.)+((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$" ' Expressão Regular
regEx.IgnoreCase = True ' Sensitivo ou não
regEx.Global = True
Retorno = regEx.Test(Dominio)
Set regEx = Nothing
'Retorno
CheckDominio = Retorno
End Function