2012-02-28 14 views

Respuesta

6

Parece que GetHostEntry hace un poco más de comprobación de errores y también es compatible con Network Tracing

a GetHostByName decompilados:

public static IPHostEntry GetHostByName(string hostName) 
{ 
    if (hostName == null) 
    throw new ArgumentNullException("hostName"); 
    Dns.s_DnsPermission.Demand(); 
    IPAddress address; 
    if (IPAddress.TryParse(hostName, out address)) 
    return Dns.GetUnresolveAnswer(address); 
    else 
    return Dns.InternalGetHostByName(hostName, false); 
} 

GetHostEntry decompilados:

public static IPHostEntry GetHostEntry(string hostNameOrAddress) 
{ 
    if (Logging.On) 
    Logging.Enter(Logging.Sockets, "DNS", "GetHostEntry", hostNameOrAddress); 
    Dns.s_DnsPermission.Demand(); 
    if (hostNameOrAddress == null) 
    throw new ArgumentNullException("hostNameOrAddress"); 
    IPAddress address; 
    IPHostEntry ipHostEntry; 
    if (IPAddress.TryParse(hostNameOrAddress, out address)) 
    { 
    if (((object) address).Equals((object) IPAddress.Any) || ((object) address).Equals((object) IPAddress.IPv6Any)) 
     throw new ArgumentException(SR.GetString("net_invalid_ip_addr"), "hostNameOrAddress"); 
    ipHostEntry = Dns.InternalGetHostByAddress(address, true); 
    } 
    else 
    ipHostEntry = Dns.InternalGetHostByName(hostNameOrAddress, true); 
    if (Logging.On) 
    Logging.Exit(Logging.Sockets, "DNS", "GetHostEntry", (object) ipHostEntry); 
    return ipHostEntry; 
} 
+0

Si usted se encuentra con los errores obsoleta solo como yo, puedes simplemente cambiar 'GetHostByName()' con 'GetHostEntry()' en tu código. – Aryo