2008-11-13 6 views
2

Comment connaître le nom DNS du serveur sur lequel l'application ASP.NET est exécutée?DNS du serveur sur lequel l'application ASP.NET est exécutée

Je veux obtenir la chaîne « www.somehost.com » si mon URL de l'application est http://www.somehost.com/somepath/application.aspx

Y at-il une propriété de serveur, Contex, session ou objets de demande pour cela?

Merci!

+0

Le nom de domaine, ou le nom de domaine du serveur? –

+0

Ou bien l'adresse IP? –

+0

Essayez-vous de trouver la partie domaine/hôte de l'URL utilisée par l'internaute? Ou le nom de machine du serveur exécutant l'application ASP.NET? Ils ne sont pas nécessairement les mêmes. Étant donné que vous envisagez l'objet Demande, je suppose que vous êtes après la partie hôte de l'URL? –

Répondre

3

Cela vous obtenir l'adresse IP DNS pour le serveur qui héberge le site Web

void GetDNSServerAddress() 
    { 
     NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); 
      foreach (NetworkInterface ni in nics) 
      { 
       if (ni.OperationalStatus == OperationalStatus.Up) 
       { 
        IPAddressCollection ips = ni.GetIPProperties().DnsAddresses; 

        foreach (System.Net.IPAddress ip in ips) 
        { 
         Console.Write(ip.ToString()); 
        } 
       } 
      } 
    } 

Cependant, en écrivant ce ive juste vu votre message édité, donc je pense que c'est ce que vous êtes après est simplement:

string host = Request.Url.Scheme + "://" + Request.Url.Host; 

Espérons que cela aide!

0

La variable de serveur HTTP_HOST peut vous fournir ce dont vous avez besoin.

Request.ServerVariables("HTTP_HOST") 
+0

C'est l'hôte des en-têtes http. S'il existe un proxy inverse ou quelque chose devant le serveur d'applications ASP.NET, ce n'est probablement pas le nom de la machine qui exécute l'application ASP.NET. –

0

Vous pouvez également obtenir le « nom de la machine » à l'aide

System.Environment.MachineName 
+0

Non, c'est pour le nom NetBIOS. –

Questions connexes