2017-07-19 6 views
0

私は何かを以下に説明しようとした、何とか、IPアドレスは、ここで C#のIPアドレスは常に:: 1

はコードであり、両方のローカルおよびサーバー側で、常に:: 1ですが、私が試しました。

m_CallerIP = string.IsNullOrEmpty(req.ServerVariables["HTTP_CLIENT_IP"]) ? req.UserHostAddress : req.ServerVariables["HTTP_CLIENT_IP"]; 
string Port = string.IsNullOrEmpty(req.ServerVariables["HTTP_CLIENTPORT"]) ? req["HTTP_CLIENTPORT"] : req.ServerVariables["CLIENTPORT"]; 

string asd2 = String.IsNullOrEmpty(req.ServerVariables["REMOTE_ADDR"]) ? req.UserHostAddress : req.ServerVariables["REMOTE_ADDR"]; 
string asd23 = String.IsNullOrEmpty(req.ServerVariables["HTTP_X_FORWARDED_FOR"]) ? req.UserHostAddress : req.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

string asd4 = req.UserHostAddress; 

IPAddress address = IPAddress.Parse(m_CallerIP); 
IPAddress address1 = IPAddress.Parse(asd2); 
IPAddress address2 = IPAddress.Parse(asd23); 
IPAddress address3 = IPAddress.Parse(asd4); 

なぜ、どのように解決するのか知る人がいますか?

ありがとうございました!

+0

まだ試しました:: 1 – NewPHPer

+0

あなたは別のマシンからサーバーにアクセスしていますか? –

+0

@ChristophKはい私はすでにこれを試しました。 – NewPHPer

答えて

0

コードは私のために働いています。

私がlocalhostでアプリケーションを実行すると、私は常に:: 1を取得します。しかし、それはサーバー側でgreate動作します。アプリはAzureで動作しています。

string ip = ""; 

ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

if (!string.IsNullOrEmpty(ip)) 
    ip = ip.Split(',').Last().Trim(); 
else 
    ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 

if (ip == "::1") 
    ip = ""; 

if (ip.IndexOf(':') > 0) 
    ip = ip.Substring(0, ip.IndexOf(':')); 

return ip; 
関連する問題