Déterminer le nom d’ordinateur du client

Je construis un site intranet qui affiche différentes listes en fonction du nom de l’ordinateur car différents ordinateurs sont situés dans des zones différentes. Existe-t-il un moyen (au sein d’un contrôleur ou d’un modèle) de déterminer le nom d’ordinateur du client?

J’ai essayé system.environment.machinename mais cela ne renvoie que le nom du serveur, d’autres idées?

Je l’ai obtenu en utilisant les éléments suivants:

ssortingng IP = Request.UserHostName; ssortingng compName = CompNameHelper.DetermineCompName(IP); 

code de compnamehelper:

 public static ssortingng DetermineCompName(ssortingng IP) { IPAddress myIP = IPAddress.Parse(IP); IPHostEntry GetIPHost = Dns.GetHostEntry(myIP); List compName = GetIPHost.HostName.ToSsortingng().Split('.').ToList(); return compName.First(); } 

code en VB:

 Dim myIP As IPAddress = IPAddress.Parse(Request.UserHostName) Dim GetIPHost As IPHostEntry = Dns.GetHostEntry(myIP) Dim compName As List(Of Ssortingng) = GetIPHost.HostName.ToSsortingng.Split("").ToList return(compName.First) 

Non, le nom d’ordinateur du client n’est pas disponible sur le serveur. C’est la nature de la requête-réponse http. Vous ne pouvez avoir que son adresse IP.

Une solution de contournement pourrait consister à récupérer une machine sur le client à partir de Flash / Silverlight (je doute de JavaScript) et à la placer dans un cookie disponible sur le serveur avec chaque demande. Mais il y a toute une stack de problèmes avec cette approche.

Essaye ça:

 ssortingng name = Request.UserHostName; 

À ma connaissance, le seul moyen d’inspecter le client consiste à utiliser la collection ServerVariables sur l’object Request (qui devrait être disponible pour le code MVC).

Voir http://www.4guysfromrolla.com/webtech/092298-3.shtml pour plus d’informations. REMOTE_HOST et REMOTE_ADDR ressemblent à des candidats.

Je pense que vous feriez mieux d’utiliser l’une de ces méthodes pour attacher un utilisateur à un emplacement:

  • un cookie défini une fois que l’utilisateur sélectionne lui-même son emplacement
  • avoir l’utilisateur se connecter sur le site afin que vous puissiez les suivre uniquement de cette façon
  • se souvenir de l’utilisateur par adresse IP

Il n’y a aucun moyen de s’assurer que les noms d’hôte distants sont uniques. Le même problème se produit avec IP à cause des proxies, IP dynamic, etc., mais je pense que ce sera un peu plus fiable. En outre, vous pouvez faire la géolocalisation par adresse IP.

Voici une solution exclusivement IE. Cela fonctionne dans IE8, avec plusieurs avertissements de sécurité.