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

相关文章

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Nginx配置location+rewrite实现隐性域名配置

《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性... 目录1、配置基于根目录的隐性域名(就是nginx反向代理)2、配置基于条件的隐性域名2.1、基于条件

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2