C#实现ip 地址过滤功能

原创 2005年04月29日 22:13:00
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>");

    }

 

 

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 地址过滤功能[ 2005-07-11 12:21:55 | 作者: admin ] 字体大小: 大 | 中 | 小  实现思想,比如219.221.105.1-219.221.105.3...
  • aiwtu
  • aiwtu
  • 2006年07月03日 21:45
  • 1867

c#实现根据网络IP显示地理位置功能

用户信息表,是大多数系统都有的。我们也知道,通常都会有类似 注册IP 和 最后登录IP 这两个的字段,来存储用户注册时候的IP地址和最后登录的IP的地址。 获取这样的地址,在后台显示 xxx.x...
  • pan869823184
  • pan869823184
  • 2013年06月23日 20:52
  • 4076

为Web网站添加IP过滤功能实践总结(C#)

这项任务是从米老师(米新江的博客)那里接手的。目的是给考试系统加上限制,在局域网内,防止同学从考试以外的地点登录。          过滤IP听起来比较容易,最终的效果就是验证一下IP,再决定是否有...
  • yangyuankp
  • yangyuankp
  • 2012年07月15日 09:05
  • 4433

Tomcat服务器过滤指定IP或主机属性

这些Valves允许您用主机名或IP地址来过滤请求,并允许或拒绝匹配的主机。其功用类似于 Apache httpd中基于目录的Allow/Deny指令。如果执行Tomcat管理Web应用程序(如Lam...
  • woshisap
  • woshisap
  • 2011年07月08日 17:42
  • 1898

C# IP地址访问控制

string ipLimit = "192.168.152.x,192.168.153.x,192.168.154.x,192.168.155.x,192.168.156.x,192.168.157....
  • jszhangyili
  • jszhangyili
  • 2012年10月30日 19:41
  • 4051

通过iptables 过滤IP IP段

1. 封单个IP iptables  -I INPUT -s IP地址 -j DROP   2. 封IP段 iptables -I INPUT -s 192.168.1.0/24 -j DRO...
  • zj0910
  • zj0910
  • 2013年10月20日 13:42
  • 1424

java实现IP地址过滤

增加过滤器,过滤非固定主机访问 import java.io.IOException; import java.util.StringTokenizer; import javax.servlet...
  • inaoen
  • inaoen
  • 2015年11月17日 08:58
  • 3652

C#下获取本地计算机的所有IP地址

安装虚拟机之后计算机多出来好几个IP地址
  • energeticsunxiaocong
  • energeticsunxiaocong
  • 2014年04月16日 16:11
  • 937

过滤和禁止中国IP地址访问的方法

做英文共享软件的作者,为了防止软件被破解,经常需要设置禁用中国地区的IP地址,但很多人不知道怎么进行设置。   如何在apache主机上设置禁用中国的IP地址访问,其实很简单,修改apache的...
  • hikelee
  • hikelee
  • 2013年12月17日 23:02
  • 154

C#实现动态改ip

大家都知道网上有很多投票功能.于是就有了刷票数的软件,这几天了解一下,其思路应该是每刷几次网页,就更换一个IP,然后继续访问.防止IP被封掉.刷机无效..... 在这里我用winfrom写了一更换i...
  • cuoban
  • cuoban
  • 2016年01月20日 11:13
  • 1744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: C#实现ip 地址过滤功能
举报原因:
原因补充:

(最多只允许输入30个字)