如何检查网页是否已在ASP.Net上的特定IP地址中访问?

时间:2012-10-19 10:13:02

标签: c# asp.net

在我的应用程序中,我想检查是否在特定的ip地址中访问了url。只有一次需要显示页面,并且下次导航到该页面时页面不应该出现。

我怎样才能实现这个目标?

此致 普拉萨德

5 个答案:

答案 0 :(得分:3)

我最近用这个来识别用户IP地址,以便在登录失败时登录:

// Look for a proxy address first
var IP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
//Trim and lowercase IP if not null
if (IP != null)
{
    IP = IP.ToLower().Trim();
}
if (IP == null || IP.Equals("unknown"))
{
    //If IP is null use different detection method else pull the correct IP from list.
    IP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToLower().Trim();
}

String[] IPs = null;
if (IP.IndexOf(",") > -1)
{
    IPs = IP.Split(',');
}
else
{
    IPs = new string[] { IP };
}

(注意:从VB.NET转换而来)

答案 1 :(得分:2)

您实际上是希望每个客户端显示一次页面,还是每个IP真正显示一次?

如果它是基于客户端的计算机,则让该页面存储一个cookie并检查它是否存在以确定该页面之前是否已被访问过。

答案 2 :(得分:2)

您可以尝试在数据库中存储IP地址,也可以使用cookie变量。详细了解Cookies

答案 3 :(得分:1)

按照建议和描述:How to get a user's client IP address in ASP.NET?

您可以在Page_Load

中查看此内容
Request.ServerVariables["REMOTE_ADDR"];

如果您已经完成访问,则可以使用Server.Transfer移动到其他页面(例如警告页面或返回主页等)

你坚持哪些IP访问你的页面的方式取决于你和你的需求,会话,应用程序缓存,数据库,cookie ......

答案 4 :(得分:0)

加载页面时获取IP地址并将其存储在数据库中。然后,在加载页面时,根据数据库中的可能条目检查IP。如果它不存在,请存储它并加载页面。如果它存在,则重定向用户或其他东西。