可以通过检测IP来实现.根据局域网的IP规则,非局域网内IP,就可以拦截外来访问了
解决方案 »
- 在线用户列表问题!
- 重启iis 需要多少时间
- System.Web.HttpException: 无法使用前导 .. 在顶级目录上退出。
- sql 高手来看一下
- |zyciis| 我在本地测试了IIS SMTP邮箱服务器,用OutLook发送出去没有问题都接收得到,而用ASP.NET程序发送的话,提示是发送成功的,但都收不到期谢谢
- 请问哪里有类似http://home.bbs.soufun.com/board/010_bjzxlt/ 这种帖子显示方式的论坛下载呢
- [高手请进]如何读取当前页面的url,并将其加入到弹出的新页面上的文本框中?
- 图片自由缩放代码
- 新手问题
- 要怎么才能使用如同leftB 的函数
- 高手请回
- 有關DataGrid的Title合並問題
Request.UserHostAddress取得客户端IP,然后判断该IP是内网IP还是外网IP即可。
一般类似与192.168.X.X的都是内网的
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
jadeface的答复很好,只可惜用的是VB.NET,我需要的是C#.
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";
}
"指定了无效的 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 已过时.
public const string ServerIP = "192.168.xxx.xxx"
中的 xxx.xxx 换成Web服务器内网IP地址的实际数字