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;
  }

通过Web Service实现IP地址查询功能

通过Web Service实现IP地址查询功能

C++ 实现 ping 功能&& 域名(URL)解析实际 IP地址

1、简述一般情况下,我们想知道在当前电脑设备环境下,某一个网址能不能访问,最简单的方法是win + R 键 ,输入cmd,召唤cmd命令行程序,然后直接用ping命令 + 网址 来看返回的结果,那么我...

C#通过Web获取客户端的IP与Mac地址实现

一、思路(主要用于局域网内)     通过Web获取客户端的IP地址较简单,从客户端向web服务器发送的数据报中(Request对象)中即可解析出,但实际应用中,还要考虑代理服务器,路由器的转发等等。...

C#comboBox实现类似ie地址栏的功能

  • 2008年10月09日 14:24
  • 30KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: C#实现ip 地址过滤功能
举报原因:
原因补充:

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