可以通过检测IP来实现.根据局域网的IP规则,非局域网内IP,就可以拦截外来访问了

解决方案 »

  1.   

    可以根据访问者的IP地址来判断,获取访问者IP地址的方法是用:Request.UserHostAddress;
      

  2.   

    同意楼上,如果只是简单地用自己网内的IP用IIS架设的话
      

  3.   

    在IIS中把IP设为内部IP就可以啦(以192或10开头的那种)
      

  4.   

    设置IIS即可。站点或者目录属性->目录安全性->IP地址和域名限制
      

  5.   

    iis-->property-->security permit-->disallow except-->input whose ip or domain name you want to access your web application
      

  6.   

    设置IIS即可。站点或者目录属性->目录安全性->IP地址和域名限制
      

  7.   

    判断IP咯。
    Request.UserHostAddress取得客户端IP,然后判断该IP是内网IP还是外网IP即可。
    一般类似与192.168.X.X的都是内网的
      

  8.   

    Imports System
    Imports System.NetPublic Const ServerIP As String = "192.168.xxx.xxx"
    Public Const MaskBits As Integer = 16' 获取客户端 IP 地址的“域”
    Public Function GetClientAddrDomain() As String        ' 如果 IP 掩码位数无效则返回“未知”
            If MaskBits <= 0 Or MaskBits  > 32 Then
                Return "未知"
            End If        ' 将 Addr 转换为 IP 地址
            Dim _ClientIP As IPAddress = IPAddress.Parse(Request.UserHostAddress)        ' 从本机访问(127.0.0.1)则返回“本机”
            If IPAddress.IsLoopback(_ClientIP) Then
                Return "本机"
            End If        ' 将 Web 服务器的内网 IP 地址翻译成 IPAddress
            Dim _ServerIP As IPAddress = IPAddress.Parse(ServerIP)        ' 将服务器的内网 IP 地址与客户端的 IPAddress 进行异或比较网段是否一样
            ' 注意:点分十进制的 IP 地址在 IPAddress 中从低位到高位排列
            If (_ServerIP.Address Xor _ClientIP.Address) Mod (2 ^ MaskBits) = 0 Then
                Return "内网"
            Else
                Return "外网"
            End IfEnd Function
      

  9.   

    在iis管理器中设置ip地址限制。
      

  10.   

    有些网友误解了,我不是不想让外面的人访问我的服务器,而是限制他们访问一些,他们不该访问的内容 .
    jadeface的答复很好,只可惜用的是VB.NET,我需要的是C#.
      

  11.   

    翻写了一下,试试看。
    using System;
    using System.Net;public const string ServerIP  = "192.168.xxx.xxx";
    public const int MaskBits  = 16;public string GetClientAddrDomain()
    {
    if (MaskBits <= 0 || MaskBits  > 32)
            return "unknown"; IPAddress _ClientIP = IPAddress.Parse(Request.UserHostAddress); if (IPAddress.IsLoopback(_ClientIP))
    return "self"; IPAddress _ServerIP = IPAddress.Parse(ServerIP); if (((_ServerIP.Address ^ _ClientIP.Address) % (2 ^ MaskBits)) == 0)
    return "internal";
    else
    return "external";
    }
      

  12.   

    编译能通过,但在浏览器里浏览时显示:
    "指定了无效的 IP 地址。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 指定了无效的 IP 地址。源错误: 
    行 28:  return "self";
    行 29: 
    行 30:  IPAddress _ServerIP = IPAddress.Parse(ServerIP);
    行 31: 
    行 32:  if (((_ServerIP.Address ^ _ClientIP.Address) % (2 ^ MaskBits)) == 0)
     
    "另外,编译时提示:
    System.Net.IPAddress.Address 已过时.
      

  13.   

    应将
    public const string ServerIP  = "192.168.xxx.xxx"
    中的 xxx.xxx 换成Web服务器内网IP地址的实际数字
      

  14.   

    注意:指的是Web服务器的内网IP地址,如果掩码位数=16,直接用192.168.1.1就可以。