2017-10-16 3 views
0

を取得することはできませんここに私のコードです:こんにちは、私は私の地元のIP4アドレスを取得しようとしているが、結果は唯一のIISサーバー</p> <p>のIPを返すローカルIP4アドレスのみサーバアドレス

 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); 

私はウィンドウ認証を使用しているため、IIS認証はWindows認証のみを有効にしています。しかし、なぜ返されたipは私のローカルip4ではなく、IISサーバーのアドレスですか?一般的に

+0

何を返す必要がありますか?そして何が戻っているのですか?サンプルの期待値と実際のデータを追加できますか? –

+0

WebサーバーではなくローカルIPアドレスを返す必要があります – samin

答えて

0

HttpContext.Current.Request.UserHostAddress; 

退屈なアプローチ:

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()); 

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

関連する問題