C#IP地址始终::1

C#IP地址始终::1,c#,asp.net,ip,C#,Asp.net,Ip,我试过下面解释的方法,不知怎么的,IP地址总是::1,在本地和服务器端 这是代码,我试过了 m_CallerIP = string.IsNullOrEmpty(req.ServerVariables["HTTP_CLIENT_IP"]) ? req.UserHostAddress : req.ServerVariables["HTTP_CLIENT_IP"]; string Port = string.IsNullOrEmpty(req.ServerVariables["HTTP_CLIENTP

我试过下面解释的方法,不知怎么的,IP地址总是::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);
有人知道为什么以及如何解决这个问题吗


提前谢谢

下面的代码对我有用

当我在localhost中运行应用程序时,我总是得到::1。但是,它在服务器端非常有效。应用程序正在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;

我已经试过了,仍然::1您是从其他机器访问服务器吗?@ChristophK是的,我已经试过了。@NewPHPer for
localhost
始终是
::1
,但是对于外部,我想知道您是如何访问的您可以向我们显示您用于加载网页的URL吗?