var result = GetUser_IP();
protected string GetUser_IP()
{
string ipList = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipList))
{
return ipList.Split(',')[0];
}
return Request.ServerVariables["REMOTE_ADDR"];
}
结果始终显示 :: 1 为什么我看不到IP地址而不是 :: 1
对于IP地址结果, :: 1 是什么?
我在代码中遗漏了什么,如何在http://whatismyipaddress.com/中获取我的IP地址?
我们将不胜感激。
感谢。
答案 0 :(得分:2)
是::1
是localhost的IP地址。当您使用visual studio运行应用程序时,它将为您提供本地主机的IP地址。
::1
是IPv6中的环回地址。可以将其视为127.0.0.1
的IPv6版本。
答案 1 :(得分:0)
使用以下方法
public static string GetVisitorIPAddress(HttpContext _context)
{
bool GetLan = true;
string visitorIPAddress = _context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (String.IsNullOrEmpty(visitorIPAddress))
visitorIPAddress = _context.Request.ServerVariables["REMOTE_ADDR"];
if (string.IsNullOrEmpty(visitorIPAddress))
visitorIPAddress = _context.Request.UserHostAddress;
if (string.IsNullOrEmpty(visitorIPAddress) || visitorIPAddress.Trim() == "::1")
{
GetLan = true;
visitorIPAddress = string.Empty;
}
if (GetLan)
{
if (string.IsNullOrEmpty(visitorIPAddress))
{
//This is for Local(LAN) Connected ID Address
string stringHostName = Dns.GetHostName();
//Get Ip Host Entry
IPHostEntry ipHostEntries = Dns.GetHostEntry(stringHostName);
//Get Ip Address From The Ip Host Entry Address List
System.Net.IPAddress[] arrIpAddress = ipHostEntries.AddressList;
try
{
visitorIPAddress = arrIpAddress[arrIpAddress.Length - 0].ToString();
}
catch
{
try
{
visitorIPAddress = arrIpAddress[0].ToString();
}
catch
{
try
{
arrIpAddress = Dns.GetHostAddresses(stringHostName);
visitorIPAddress = arrIpAddress[0].ToString();
}
catch
{
visitorIPAddress = "127.0.0.1";
}
}
}
}
}
return visitorIPAddress;
}