时间:2016-02-16 01:46 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net网站首页根据IP自动跳转指定页面的示例】,下面是详细的讲解!
asp.net网站首页根据IP自动跳转指定页面的示例
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Xml;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using NetOpen_System.Component.QQWry;
namespace NetOpen_System.Component
{
public sealed class WebsiteSkipHttpModule : IHttpModule
{
#region IHttpModule 成员
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest +=new EventHandler(context_BeginRequest);
}
#endregion
void context_BeginRequest(object sender, EventArgs e)
{
try
{
//if (HttpContext.Current.Request.IsLocal)//忽略本地计算机请求
// return;
//string ip=HttpContext.Current.Request.UserHostAddress;
//string ip=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
string ip=string.Empty;
if (HttpContext.Current.Request.ServerVariables["HTTP_X_REAL_IP"] !=null)
{
ip=HttpContext.Current.Request.ServerVariables["HTTP_X_REAL_IP"].ToString();
}
else if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=null)
{
ip=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] !=null)
{
ip=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
ip=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
QQWryLocator qqWry=new QQWryLocator(HttpContext.Current.Server.MapPath(@"~\IpData\qqwry.dat"));
IPLocation ipaddress=qqWry.Query(ip); //查询一个IP地址
string ls_city=ipaddress.Country;
string ls_urlfrom=string.Empty;
string ls_urlto=string.Empty;
string ls_url=HttpContext.Current.Request.Url.AbsoluteUri;
string ls_useragentkeyword=string.Empty;
ExcludeUserAgentMatchEngine Em=WebsiteSkipConfiguration.GetConfig().ExcludeUserAgents;
if(Em.ExcludeUserAgentList.Count > 0)
{
foreach (ExcludeUserAgent ua in Em.ExcludeUserAgentList)
{
if (HttpContext.Current.Request.UserAgent.Contains(ua.keyword))
{
return;
}
}
}
UrlMatchEngine pu=WebsiteSkipConfiguration.GetConfig().SkipedUrls;
if (pu.UrlList.Count > 0)
{
foreach (SkipedUrl sk in pu.UrlList)
{
if (ls_city.Contains(sk.IpCity))
{
if (sk.UrlFrom.Length > 0)
{
if (sk.UrlFrom.Contains(ls_url) && !ls_url.Contains(sk.OutKeyWord))
{
if (sk.UrlTo.Length > 0)
{
HttpContext.Current.Response.Redirect(sk.UrlTo, true);
}
break;
}
}
break;
}
}
}
if (WebsiteSkipConfiguration.GetConfig().IpChecks.GetIpIn(ip))
{
ls_urlfrom=WebsiteSkipConfiguration.GetConfig().IpChecks.UrlFrom.Trim();
ls_urlto=WebsiteSkipConfiguration.GetConfig().IpChecks.UrlTo.Trim();
if (ls_urlfrom.Length > 0)
{
if (ls_urlfrom.Contains(ls_url) && !ls_url.Contains(WebsiteSkipConfiguration.GetConfig().IpChecks.OutKeyWord))
{
if (ls_urlto.Length > 0)
{
HttpContext.Current.Response.Redirect(ls_urlto, true);
}
}
}
}
}
catch
{
}
}
}
}
关于asp.net网站首页根据IP自动跳转指定页面的示例的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
