2010-03-13 3 views
3

je dois obtenir un nom de domaine si j'ai une adresse IP (par exemple type I 209.85.129.103 et le programme devrait savoir que est l'adresse Google)Obtenir un nom de domaine se basant sur l'adresse IP

En ce qui concerne comme je l'ai compris est obtenir le nom d'hôte:

IPHostEntry IpToDomainName = Dns.GetHostEntry("209.85.129.103"); 
string HostName = IpToDomainName.HostName; //it returns "fk-in-f103.1e100.net" 

mais ce n'est pas ce que je veux. Je ne sais pas comment y parvenir. Toutes les idées seront utiles

+0

Google possède '1e100.net', il s'agit donc d'une adresse Google. –

Répondre

1

Je suppose que vous parlez d'obtenir le de haut niveau nom de domaine du nom d'hôte? Le TLD est juste les deux dernières parties séparées par des points du nom d'hôte complet, donc une fonction ressemblerait à ceci:

public static string GetTopLevelDomain(string hostName) 
{ 
    int lastDot = hostName.LastIndexOf('.'); 
    if (lastDot < 0) 
     return hostName; 
    int previousDot = hostName.LastIndexOf('.', lastDot - 1); 
    return (previousDot >= 0) ? hostName.Substring(previousDot + 1) : hostName; 
} 

Si vous essayez réellement de savoir qui est propriétaire le domaine, vous avez utiliser une recherche whois. Voici un whois example in C#. L'information vient juste de revenir au texte brut; Gardez à l'esprit que cela ne vous dira pas nécessairement la personne ou l'entreprise qui en est propriétaire, parfois cette information est privée et tout ce que vous obtiendrez est le bureau d'enregistrement (comme GoDaddy).

De plus, différents serveurs whois donneront des informations différentes et des zones différentes; par exemple, vous pouvez obtenir des informations sur un domaine américain avec ARIN, mais pour les domaines européens, vous devez utiliser RIPE à la place. Honnêtement, j'espère que ce n'est pas ce que vous essayez de faire parce que vous allez trouver que c'est un gouffre; il n'y a aucun moyen simple de déterminer de manière fiable que Domaine X appartient à Société Y.

+0

Ok, mais l'utilisateur devrait savoir que c'est Google – Tony

+0

Je développe un petit moniteur HTTP, donc j'ai besoin de savoir si l'utilisateur tape "209.85.129.103" il saura que c'est google.com – Tony

+0

@Tony: Vous ne peut le faire que si le nom d'hôte de '209.85.129.103' est en réalité' google.com' ou l'un de ses sous-domaines. Comme je l'ai expliqué, vous pouvez essayer d'utiliser les recherches whois pour obtenir plus d'informations, mais je dois dire que vous êtes sur un bateau en train de couler - le processus de trouver le bon serveur whois et d'analyser sa sortie est très compliqué sujettes, puisqu'il n'y a aucune norme régissant sa production. Je suppose que vous pourriez faire des compromis et essayer d'analyser le texte whois d'arin.net, et si cela échoue, affichez simplement le nom d'hôte ou l'adresse IP d'origine. – Aaronaught

Questions connexes