ASP.NET取IP 我的目的是想要统计一个链接被点击的次数而且要以IP区分,就是说想要监控到一个IP点击链接点了几次在ASP.NET中要怎么样取访问人的机子的IP??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有一个方法.楼主试试. /// <summary> /// 获得客户端IP /// </summary> /// <returns></returns> public static string GetClientIP() { string ip; string[] temp; bool isErr = false; if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"] == null) ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString(); else ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"].ToString(); if (ip.Length > 15) isErr = true; else { temp = ip.Split('.'); if (temp.Length == 4) { for (int i = 0; i < temp.Length; i++) { if (temp[i].Length > 3) isErr = true; } } else isErr = true; } if (isErr) return "1.1.1.1"; else return ip; } Request.UserHostAddress不过这个属性取得的IP地址不一定是准确的,如果用户使用的是代理的话(或者你们网站使用了CDN),那么使用这个代理的所有用户都是代理或者cdn的IP地址在asp的时代有个服务器变量,可以取到用户的IP地址(但是这个要代理支持)asp.net里也可以用,你google下就知道了. if(Request.ServerVariables["HTTP_VIA"]!=null) { VisitedIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); } else { if (Request.ServerVariables["HTTP_VIA"]!=null) { VisitedIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); } else { VisitedIP=Request.ServerVariables["REMOTE_ADDR"].ToString(); } } 2楼和5楼的方法我都试了一下2楼朋友的方法取出来的IP是127.0.0.15楼朋友的方法,报错,是不识别 Request 刚才错了,是在ASP.net中的静态方法是不能用request 动态方法中是可以的 Java DES加密谁能转成c#的急,好了成上结帖 asp.net MVC membership问题 各位帮忙给个思路,我想写个程序自动刷页面的链接 ViewState("引用站点")=Request.Headers("引用站点") 如何动态加载按忸单击事件 sql中的datediff问题 强类型数据集如何实现缓存? 如何在程序里面运行*.Exe文件;谢谢!!!! 请各位兄台多给意见,意见越多分越多:数据同步提交的讨论性问题? 题外话 面试如此棘手的问题!! 在asp.net中,如何设置SelectedNode的值,高手帮忙
/// 获得客户端IP
/// </summary>
/// <returns></returns>
public static string GetClientIP()
{
string ip;
string[] temp;
bool isErr = false;
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"] == null)
ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
else
ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"].ToString();
if (ip.Length > 15)
isErr = true;
else
{
temp = ip.Split('.');
if (temp.Length == 4)
{
for (int i = 0; i < temp.Length; i++)
{
if (temp[i].Length > 3) isErr = true;
}
}
else
isErr = true;
}
if (isErr)
return "1.1.1.1";
else
return ip;
}
在asp的时代有个服务器变量,可以取到用户的IP地址(但是这个要代理支持)
asp.net里也可以用,你google下就知道了.
{
VisitedIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
if (Request.ServerVariables["HTTP_VIA"]!=null)
{
VisitedIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
VisitedIP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}
}
2楼朋友的方法取出来的IP是127.0.0.1
5楼朋友的方法,报错,是不识别 Request
动态方法中是可以的