作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要使用客户端或服务器端来确定请求是来自 Internet 还是 Intranet。
我要解决的问题是:我们的网站可以从互联网和内部网访问。内网用户(公司内部用户),无法访问互联网。我们正在使用 Google Anylitics,当内部网用户访问该页面时,该页面需要很长时间才能上传,因为它会尝试下载从 Google 生成的 (ga) JavaScript 文件。
有什么解决办法吗?
最佳答案
您可以查看用户的IP地址。私有(private) ip4 地址始终以 10.、172. 或 192.* 开头……有关私有(private)网络的更多信息 here .
您也可以make Google Analytics load Asynchronous .
***************** 更新 - 请阅读 ************************** ***********
正如@igor-turman 正确指出的那样,“172”和“192”地址范围中只有一部分指定供私有(private)使用。其余以 172 和 192 开头的 IP 地址是公开的。
这是检查私有(private) IP 地址的正则表达式:
(^192\.168\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])$)|(^172\.([1][6-9]|[2][0-9]|[3][0-1])\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])$)|(^10\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])\.([0-9]|[0-9][0-9]|[0-2][0-5][0-5])$)
您可以在 regexpal.com here 上测试此正则表达式.
关于c# - 识别请求是否来自本地网络(内联网),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092376/
我是一名优秀的程序员,十分优秀!