2017-10-16 18 views
0

Salut, je suis en train d'obtenir mon adresse IP4 locale, mais le résultat ne retournant l'adresse IP du serveur IISImpossible d'obtenir l'adresse IP4 locale seulement l'adresse du serveur

voici mon code:

 public string GetLocalIPv4(NetworkInterfaceType _type) 
    { 
     string output = ""; 
     foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces()) 
     { 
      if (item.NetworkInterfaceType == _type && item.OperationalStatus == OperationalStatus.Up) 
      { 
       foreach (UnicastIPAddressInformation ip in item.GetIPProperties().UnicastAddresses) 
       { 
        if (ip.Address.AddressFamily == AddressFamily.InterNetwork) 
        { 
         output = ip.Address.ToString(); 
        } 
       } 
      } 
     } 
     return output; 
    } 

string IPAddress = GetLocalIPv4(NetworkInterfaceType.Ethernet); 

L'authentification IIS est que j'active uniquement l'authentification Windows, car j'utilise l'authentification par fenêtre. Mais pourquoi le ip de retour n'est pas mon ip4 local au lieu de l'adresse de serveur d'IIS?

+0

Qu'est-ce REVERSE? Et qu'est-ce qui est de retour? Pouvez-vous ajouter quelques exemples de données attendues et réelles? –

+0

il devrait retourner mon adresse IP locale pas mon serveur web – samin

Répondre

0

En général:

HttpContext.Current.Request.UserHostAddress; 

approche Ennuyeux:

using System.Net.Sockets; 

    foreach(IPAddress ip in Dns.GetHostEntry(System.Environment.MachineName.AddressList){ 
     if(ip.AddressFamily == AddressFamily.InterNetwork) 
      Console.WriteLine("IPV4"+ip.ToString()); 
     if(ip.AddressFamily == AddressFamily.InterNetworkV6) 
      Console.WriteLine("IPV6"+ip.ToString()); 

Source: https://msdn.microsoft.com/en-us/library/system.net.sockets.addressfamily(v=vs.110).aspx