javascript判断两个IP地址是否在同一个网段的实现思路


Posted in Javascript onDecember 13, 2013

1)基本思路:
要判断两个IP地址是否在同一个网段,将它们的IP地址分别与子网掩码做与运算,得到的结果为网络号,如果网络号相同,就在同一子网,否则,不在同一子网。

2)具体实现:

/** 
* [isEqualIPAddress 判断两个IP地址是否在同一个网段] 
* @param {[String]} addr1 [地址一] 
* @param {[String]} addr2 [地址二] 
* @param {[String]} mask [子网掩码] 
* @return {Boolean} [true or false] 
*/ 
function isEqualIPAddress (addr1,addr2,mask){ 
if(!addr1 || !addr2 || !mask){ 
console.log("各参数不能为空"); 
return false; 
} 
var 
res1 = [], 
res2 = []; 
addr1 = addr1.split("."); 
addr2 = addr2.split("."); 
mask = mask.split("."); 
for(var i = 0,ilen = addr1.length; i < ilen ; i += 1){ 
res1.push(parseInt(addr1[i]) & parseInt(mask[i])); 
res2.push(parseInt(addr2[i]) & parseInt(mask[i])); 
} 
if(res1.join(".") == res2.join(".")){ 
console.log("在同一个网段"); 
return true; 
}else{ 
console.log("不在同一个网段"); 
return false; 
} 
}
Javascript 相关文章推荐
详解JavaScript函数绑定
Aug 18 Javascript
jquery中对于批量deferred的处理方法
Jan 22 Javascript
Javascript中return的使用与闭包详解
Jan 11 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
vue-cli webpack 引入jquery的方法
Jan 10 jQuery
微信小程序时间戳转日期的详解
Apr 30 Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
详解React 元素渲染
Jul 07 Javascript
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
Mar 17 Javascript
Extjs4中的分页应用结合前后台
Dec 13 #Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 #Javascript
window.print打印指定div实例代码
Dec 13 #Javascript
Javascript中call的两种用法实例
Dec 13 #Javascript
分享JavaScript获取网页关闭与取消关闭的事件
Dec 13 #Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 #Javascript
浅析XMLHttpRequest的缓存问题
Dec 13 #Javascript
You might like
Ajax PHP分页演示
2007/01/02 PHP
php中函数的形参与实参的问题说明
2010/09/01 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
php实现插入排序
2015/03/29 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
初学JavaScript第二章
2008/09/30 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
小学生手册家长评语
2014/04/16 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js