js-判断域名是否属于内外网(转)

2024-09-03 19:18

本文主要是介绍js-判断域名是否属于内外网(转),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



/*判断是否是内网IP*/  
function isInnerIPFn(){// 获取当前页面urlvar curPageUrl = window.location.href;console.log('curPageUrl-0  '+curPageUrl);var reg1 = /(http|ftp|https|www):\/\//g;//去掉前缀curPageUrl =curPageUrl.replace(reg1,'');// console.log('curPageUrl-1  '+curPageUrl);var reg2 = /\:+/g;//替换冒号为一点curPageUrl =curPageUrl.replace(reg2,'.');// console.log('curPageUrl-2  '+curPageUrl);curPageUrl = curPageUrl.split('.');//通过一点来划分数组console.log(curPageUrl);var ipAddress = curPageUrl[0]+'.'+curPageUrl[1]+'.'+curPageUrl[2]+'.'+curPageUrl[3];var isInnerIp = false;//默认给定IP不是内网IP      var ipNum = getIpNum(ipAddress);      /** * 私有IP:A类  10.0.0.0    -10.255.255.255 *       B类  172.16.0.0  -172.31.255.255    *       C类  192.168.0.0 -192.168.255.255   *       D类   127.0.0.0   -127.255.255.255(环回地址)  **/     var aBegin = getIpNum("10.0.0.0");      var aEnd = getIpNum("10.255.255.255");      var bBegin = getIpNum("172.16.0.0");      var bEnd = getIpNum("172.31.255.255");      var cBegin = getIpNum("192.168.0.0");      var cEnd = getIpNum("192.168.255.255");   var dBegin = getIpNum("127.0.0.0");      var dEnd = getIpNum("127.255.255.255");  isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || isInner(ipNum,dBegin,dEnd);  console.log('是否是内网:'+isInnerIp);    return isInnerIp;  
}  
function getIpNum(ipAddress) {/*获取IP数*/      var ip = ipAddress.split(".");      var a = parseInt(ip[0]);      var b = parseInt(ip[1]);      var c = parseInt(ip[2]);      var d = parseInt(ip[3]);  var ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;      return ipNum;      
}     function isInner(userIp,begin,end){      return (userIp>=begin) && (userIp<=end);      
}   


这篇关于js-判断域名是否属于内外网(转)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133809

相关文章

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

poj 3259 uva 558 Wormholes(bellman最短路负权回路判断)

poj 3259: 题意:John的农场里n块地,m条路连接两块地,w个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。 任务是求你会不会在从某块地出发后又回来,看到了离开之前的自己。 判断树中是否存在负权回路就ok了。 bellman代码: #include<stdio.h>const int MaxN = 501;//农场数const int

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

zoj 1721 判断2条线段(完全)相交

给出起点,终点,与一些障碍线段。 求起点到终点的最短路。 枚举2点的距离,然后最短路。 2点可达条件:没有线段与这2点所构成的线段(完全)相交。 const double eps = 1e-8 ;double add(double x , double y){if(fabs(x+y) < eps*(fabs(x) + fabs(y))) return 0 ;return x + y ;

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p