JS中IP地址与整数相互转换的实现代码


Posted in Javascript onApril 10, 2017

主要用于在js判断用户输入的一个ip段是否合法,如:192.168.1.11-192.168.1.134

实现代码一:

function ipToNumber(ip) { 
  var num = 0; 
  if(ip == "") { 
    return num; 
  }   
  var aNum = ip.split(".");  
  if(aNum.length != 4) { 
    return num; 
  }   
  num += parseInt(aNum[0]) << 24; 
  num += parseInt(aNum[1]) << 16; 
  num += parseInt(aNum[2]) << 8; 
  num += parseInt(aNum[3]) << 0; 
  num = num >>> 0;//这个很关键,不然可能会出现负数的情况 
  return num;  
}   
  
function numberToIp(number) {   
  var ip = ""; 
  if(number <= 0) { 
    return ip; 
  } 
  var ip3 = (number << 0 ) >>> 24; 
  var ip2 = (number << 8 ) >>> 24; 
  var ip1 = (number << 16) >>> 24; 
  var ip0 = (number << 24) >>> 24 
   
  ip += ip3 + "." + ip2 + "." + ip1 + "." + ip0; 
   
  return ip;   
}

实现代码二:

//IP转成整型
function _ip2int(ip) 
{
  var num = 0;
  ip = ip.split(".");
  num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
  num = num >>> 0;
  return num;
}
//整型解析为IP地址
function _int2iP(num) 
{
  var str;
  var tt = new Array();
  tt[0] = (num >>> 24) >>> 0;
  tt[1] = ((num << 8) >>> 24) >>> 0;
  tt[2] = (num << 16) >>> 24;
  tt[3] = (num << 24) >>> 24;
  str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]);
  return str;
}

以上就是完整代码,需要的朋友可以参考一下。

Javascript 相关文章推荐
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
Vue.js tab实现选项卡切换
May 16 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 Javascript
jQuery代码优化方法总结
Jan 29 jQuery
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
浅谈如何通过node.js对数据进行MD5加密
May 16 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 Javascript
动态实现element ui的el-table某列数据不同样式的示例
Jan 22 Javascript
详解vue组件化开发-vuex状态管理库
Apr 10 #Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 #jQuery
详解vue.js全局组件和局部组件
Apr 10 #Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 #Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 #jQuery
vue构建单页面应用实战
Apr 10 #Javascript
You might like
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
python中日志logging模块的性能及多进程详解
2017/07/18 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
python如何实现视频转代码视频
2019/06/17 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
酒店个人培训自我鉴定
2013/12/11 职场文书
常务副总经理任命书
2014/06/05 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers