各位大侠们好,小弟在此发帖求助,先说明一下情况   单位局域网,IP地址段是10.75.19.*(1-255),然后单位的门户网站改版了,服务器不在我们单位内部了,统一交给一个单位管理了,意思就是对其他内部的联网单位也开放了,我们是个大局域网,还有其他单位,但是领导不想让其他单位的人访问我们单位的网站,所以提出要对IP地址进行限制,我在百度上搜了些,大部分方法是将合法IP地址存入数据库,然后在登录网站时进行验证,但是这个方法不适合我们的情况,因为数据库服务器不在我们这里,我们只有更改网站前台页面代码的权限。不知道各位大侠可有类似的经验,公布一下代码,之前我们用ASP实现过,现在是要用ASP。NET,谢谢,如果小弟有表达不清楚或是错误的地方,那见笑了附上之前用ASP实现的IP地址限制的代码:(其中有部分IP地址是单独加入的,有特殊权限,我们单位的IP段是10.75.19.*)<%if left(Request.ServerVariables("REMOTE_ADDR"),9)="10.75.19." or  Request.ServerVariables("REMOTE_ADDR")="10.75.30.246" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.247"  or Request.ServerVariables("REMOTE_ADDR")="10.75.30.249" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.250" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.251" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.252" or Request.ServerVariables("REMOTE_ADDR")="10.75.169.191" or Request.ServerVariables("REMOTE_ADDR")="10.75.169.192" or Request.ServerVariables("REMOTE_ADDR")="10.75.169.193" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.228" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.129"or Request.ServerVariables("REMOTE_ADDR")="172.16.110.60"  or Request.ServerVariables("REMOTE_ADDR")="172.16.110.62" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.227" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.229" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.159.23" or Request.ServerVariables("REMOTE_ADDR")="172.16.115.156" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.159.51" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.155.18"   or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.155.19"   or Request.ServerVariables("REMOTE_ADDR")="10.75.159.219" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.17" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.18" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.19"  or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.16.173"   or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.43"or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.47" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.47" then %>坐等好心人来帮忙!好人一生平安!

解决方案 »

  1.   

    把允许访问的IP地址存入一个数组,然后根据访问的IP地址进行过滤。不过你们要是只能在前台做修改,还真是不清楚要怎么做。
      

  2.   

    数据么,不一定存在数据库里的才叫数据.一个XML文件一样可以当做数据库来用嘛.
      

  3.   

    不知想通过什么方式限止?修改程序<>修改路由器配置<>还是其他方式?不同方式,办法不同了.
      

  4.   

    获取访问的IP,如果不在允许访问的IP段,就提示禁止访问
      

  5.   

    不知道你们以前的网站是如何设计的。如果在一开始的时候是如下设计可能目前就非常好做了。
    自定义类:(所有页面的基类)
    Class   WebBase:System.Web.UI.Page
    {
          pulic Page_load(...sender,...e){}
    }
    然后所有的页面全部继承于该类或者该类的子类。在所有页面的Page_Load事件里面首先调用base.PageLoad()事件,如此一来,只需要在WebBase里面加入IP限制,则可以对所有网站页面使用。
      

  6.   

    先谢谢楼上的各位我们现在的做法是:分配给每个需要在网站上发文的人权限,用户名密码那种,但是这样领导不满意,操作起来也麻烦,那个统一管理各单位的单位,还是我们的内部单位,呵呵所以,还是期待限制IP的方法,需要源码,2楼说的xml,我们不会配置啊,水平有限
      

  7.   

    可以在 global.asax 处理 Application_AuthenticateRequest 事件验证 ip 的代码,如果刚好是一个整齐的 ip 段,可以这样写:if(!Request.ServerVariables("REMOTE_ADDR").StartsWith("10.75.19."))
    {
    Response.Clear();
    Response.Write("invalid ip");
    Response.End();
    }如果不是整齐的 ip 段,可以把所有 ip 列在文本文件里,每行一个,读到 List<string>里if(!allowedIps.Contains(Request.ServerVariables("REMOTE_ADDR")))
    {
    Response.Clear();
    Response.Write("invalid ip");
    Response.End();
    }
      

  8.   

    不会操作xml,看来楼主不是专门做.net的
      

  9.   

    获取访问IP,地址转向
    判断IP范围如Ip转long判断
    System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("");
    long ip= ipaddress.Address;a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d; 
      

  10.   

    用xml存储允许的ip就可以,不需要用数据库。
      

  11.   

    转完之后效率比较高以前写过类似的算法LZ可以自己写个算法来判断 在Global里进行取 判断...
      

  12.   

    xml很简单啊,建个dataset,创建下字段.保存的时候就ds.WriteXml()写个文件,查询的时候ds.ReadXml().里面就保存需要排除的IP,可以使用*表示一个区段什么的就行了.
     
      

  13.   


    我们的那个页面的代码是这样的:现在就是那个IF语句里判断IP地址的语句不执行,不知道为什么,如果用你的语句来改,应该怎么改呢?<TABLE cellSpacing=1 cellPadding=0 width="100%" align=left bgColor=#e4e4e4 border=0>
    <TBODY>
    <TR>
    <TD background=/_layouts/2052/images/images-red/jiao.jpg bgColor=#ffffff height=30>
    <TABLE cellSpacing=0 cellPadding=0 width="100%" align=right border=0>
    <TBODY>
    <TR>
    <TD width="14%" height=26>
    <DIV align=right><IMG height=14 src="http://10.75.1.12/_layouts/2052/images/images-red/red-dian.gif" width=22></DIV></TD>
    <TD width="63%">
    <DIV class=title-red align=center><FONT size=3>会议纪要</FONT></DIV></TD>
    <TD width="23%"><%
    if left(Request.ServerVariables("REMOTE_ADDR"),9)="10.75.19." or Request.ServerVariables("REMOTE_ADDR")="10.75.30.246" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.247" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.249" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.250" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.251" or Request.ServerVariables("REMOTE_ADDR")="10.75.30.252" or Request.ServerVariables("REMOTE_ADDR")="10.75.169.191" or Request.ServerVariables("REMOTE_ADDR")="10.75.169.192" or Request.ServerVariables("REMOTE_ADDR")="10.75.169.193" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.228" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.129"or Request.ServerVariables("REMOTE_ADDR")="172.16.110.60" or Request.ServerVariables("REMOTE_ADDR")="172.16.110.62" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.227" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.229" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.159.23" or Request.ServerVariables("REMOTE_ADDR")="172.16.115.156" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.159.51" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.155.18" or left(Request.ServerVariables("REMOTE_ADDR"),12)="10.75.155.19" or Request.ServerVariables("REMOTE_ADDR")="10.75.159.219" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.17" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.18" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.19" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.16.173" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.43"or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.47" or left(Request.ServerVariables("REMOTE_ADDR"),11)="10.75.41.47" then%>
    <A title="" href="http://10.75.19.98:86/hyjy/index.asp" target=_blank><IMG height=13 src="http://10.75.1.12/_layouts/2052/images/images-red/mores-02.gif" width=57 border=0></A>
    <%Else %>
    <IMG height=13 src="http://10.75.1.12/_layouts/2052/images/images-red/mores-02.gif" width=57 border=0>
    <%End IF%>
    </TD>
    </TR></TBODY></TABLE></TD></TR>
    <TR>
    <TD width="100%" height=10></TD></TR></TBODY></TABLE>
      

  14.   


    关键就是在这里,那个IF语句的功能不执行,就是判断IP地址的<TABLE cellSpacing=1 cellPadding=0 width="100%" align=left bgColor=#e4e4e4 border=0>
    <TBODY>
    <TR>
    <TD background=/_layouts/2052/images/images-red/jiao.jpg bgColor=#ffffff height=30>
    <TABLE cellSpacing=0 cellPadding=0 width="100%" align=right border=0>
    <TBODY>
    <TR>
    <TD width="14%" height=26>
    <DIV align=right><IMG height=14 src="http://10.75.1.12/_layouts/2052/images/images-red/red-dian.gif" width=22></DIV></TD>
    <TD width="63%">
    <DIV class=title-red align=center><FONT size=3>会议纪要</FONT></DIV></TD>
    <TD width="23%"><%
    if left(Request.ServerVariables("REMOTE_ADDR"),9)="10.75.19."
    then%>
    <A title="" href="http://10.75.19.98:86/hyjy/index.asp" target=_blank><IMG height=13 src="http://10.75.1.12/_layouts/2052/images/images-red/mores-02.gif" width=57 border=0></A>
    <%Else %>
    <IMG height=13 src="http://10.75.1.12/_layouts/2052/images/images-red/mores-02.gif" width=57 border=0>
    <%End IF%>
    </TD>
    </TR></TBODY></TABLE></TD></TR>
    <TR>
    <TD width="100%" height=10></TD></TR></TBODY></TABLE>
    请问为什么IF语句不执行?