C#实现ip 地址过滤功能
来源:互联网 发布:linux目录 编辑:程序博客网 时间:2024/06/06 03:24
string proxy,Getip;
//string realip;
//realip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();//返回空表示没有用代理,否则返回代理服务ip
proxy = Request.ServerVariables["REMOTE_ADDR"].ToString();//没用代理
//if(realip == "")
Getip = proxy;
//else
//Getip = realip;
string[] ip_user_arr = Getip.Split('.');
DBReader db = new DBReader(); //从数据库中读取ip起始地址和结束地址
DataSet ds = new DataSet();
ds = db.Select("Select * from IPcontrol where 1=1");
string[] ipstar = new string[ds.Tables[0].Rows.Count];
string[] ipend = new string[ds.Tables[0].Rows.Count];
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ipstar[i] = sm.Decrypto(ds.Tables[0].Rows[i]["IPAccessStar"].ToString());//因为ip用了加密算法的,所以调用了sm.Decrpto函数
ipend[i] = sm.Decrypto(ds.Tables[0].Rows[i]["IPAccseeEnd"].ToString());
}
if((ipstar.Length == ipend.Length) && ipstar.Length >0)
{
for(int j = 0;j<ipstar.Length; j++)
{
string ip_start = ipstar[j];
string ip_end = ipend[j];
string[] ip_start_arr = ip_start.Split('.');
string[] ip_end_arr = ip_end.Split('.');
string ip_start_str = "",ip_end_str = "",ip_user_str = "";
for(int i = 0;i<4;i++)
{
ip_start_str += this.sss(Convert.ToString((Convert.ToDouble(ip_start_arr[i])/1000)));
ip_end_str += this.sss(Convert.ToString((Convert.ToDouble(ip_end_arr[i])/1000)));
ip_user_str += this.sss(Convert.ToString((Convert.ToDouble(ip_user_arr[i])/1000)));
}
if(Convert.ToDouble(ip_user_str)>Convert.ToDouble(ip_end_str) || Convert.ToDouble(ip_user_str)<Convert.ToDouble(ip_start_str))
{
//Response.Write( "<script language='javascript'>alert('您的IP不在允许访问的IP列表中!');</script>");
}
}
//IP符合条件时候处理
}
else
{
//数据库没有ip地址过滤表时的处理
//Response.Write( "<script language='javascript'>alert('您的IP不在允许访问的IP列表中!');</script>");
//string realip;
//realip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();//返回空表示没有用代理,否则返回代理服务ip
proxy = Request.ServerVariables["REMOTE_ADDR"].ToString();//没用代理
//if(realip == "")
Getip = proxy;
//else
//Getip = realip;
string[] ip_user_arr = Getip.Split('.');
DBReader db = new DBReader(); //从数据库中读取ip起始地址和结束地址
DataSet ds = new DataSet();
ds = db.Select("Select * from IPcontrol where 1=1");
string[] ipstar = new string[ds.Tables[0].Rows.Count];
string[] ipend = new string[ds.Tables[0].Rows.Count];
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ipstar[i] = sm.Decrypto(ds.Tables[0].Rows[i]["IPAccessStar"].ToString());//因为ip用了加密算法的,所以调用了sm.Decrpto函数
ipend[i] = sm.Decrypto(ds.Tables[0].Rows[i]["IPAccseeEnd"].ToString());
}
if((ipstar.Length == ipend.Length) && ipstar.Length >0)
{
for(int j = 0;j<ipstar.Length; j++)
{
string ip_start = ipstar[j];
string ip_end = ipend[j];
string[] ip_start_arr = ip_start.Split('.');
string[] ip_end_arr = ip_end.Split('.');
string ip_start_str = "",ip_end_str = "",ip_user_str = "";
for(int i = 0;i<4;i++)
{
ip_start_str += this.sss(Convert.ToString((Convert.ToDouble(ip_start_arr[i])/1000)));
ip_end_str += this.sss(Convert.ToString((Convert.ToDouble(ip_end_arr[i])/1000)));
ip_user_str += this.sss(Convert.ToString((Convert.ToDouble(ip_user_arr[i])/1000)));
}
if(Convert.ToDouble(ip_user_str)>Convert.ToDouble(ip_end_str) || Convert.ToDouble(ip_user_str)<Convert.ToDouble(ip_start_str))
{
//Response.Write( "<script language='javascript'>alert('您的IP不在允许访问的IP列表中!');</script>");
}
}
//IP符合条件时候处理
}
else
{
//数据库没有ip地址过滤表时的处理
//Response.Write( "<script language='javascript'>alert('您的IP不在允许访问的IP列表中!');</script>");
}
public string sss(string s)
{
int i = s.IndexOf('.');
string temp = s.Substring(i+1, s.Length - i - 1);
while(temp.Length < 3)
{
temp += "0";
}
return temp;
}
- C#实现ip 地址过滤功能
- C#实现ip 地址过滤功能
- java实现IP地址过滤
- php 实现 过滤国家ip访问功能
- C#实现IP地址控件
- 设计IP地址屏蔽功能 c#
- 通过HttpModule实现IP地址屏蔽功能
- 通过HttpModule实现IP地址屏蔽功能
- PHP 中检查或过滤IP地址的实现代码
- C#实现网卡IP地址自由切换
- C#中实现IP地址的排序
- Filter 过滤程序 过滤非法ip地址
- C#实现更改IP功能源码
- C#实现更改IP功能源码
- C#实现更改IP功能源码
- C#实现更改IP功能源代码
- C#实现更改IP功能源代码
- C#实现更改IP功能源码
- tomcat 的不同jsp/servlet 版本
- 另一个MVC框架------基于Gtkmm/libglademm的bakery
- [转载]C#里的委托和事件实现Observer
- B/S结构下屏蔽系统热键
- 人生致命的六个经典问题
- C#实现ip 地址过滤功能
- [转载]关闭框架网页(C#)
- 框架网页转向(C#)
- 判断ip地址是否有效(C#)
- 工作两年(三)--进入Regular Expression的世界
- 偶遇
- [转载]javascript写的时钟,太强了!
- [转载]常用JS函数
- 在MDI主框架窗口中添加位图(在视中加载位图)