您的位置:首页 > 编程语言 > ASP

Asp.net获取客户端的IP地址排除::1

2013-09-24 11:23 337 查看
public static string GetClientIPv4Address()

{

string ipv4 = String.Empty;

foreach (IPAddress ip in Dns.GetHostAddresses(GetClientIP()))

{

if (ip.AddressFamily.ToString() == "InterNetwork")

{

ipv4 = ip.ToString();

break;

}

}

if (ipv4 != String.Empty)

{

return ipv4;

}

// 利用 Dns.GetHostEntry 方法,由获取的 IPv6 位址反查 DNS 纪录,

// 再逐一判断何者为 IPv4 协议,即可转为 IPv4 位址。

foreach (IPAddress ip in Dns.GetHostEntry(GetClientIP()).AddressList)

//foreach (IPAddress ip in Dns.GetHostAddresses(Dns.GetHostName()))

{

if (ip.AddressFamily.ToString() == "InterNetwork")

{

ipv4 = ip.ToString();

break;

}

}

return ipv4;

}

public static string GetClientIP()

{

if (null == HttpContext.Current.Request.ServerVariables["HTTP_VIA"])

{

return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

}

else

{

return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: