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 相关文章推荐
在javascript中对于DOM的加强
Apr 11 Javascript
JQuery获取样式中的background-color颜色值的问题
Aug 20 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
jQuery实现右键菜单、遮罩等效果代码
Sep 27 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
Parcel 打包示例(React HelloWorld)
Jan 16 Javascript
Vue 样式绑定的实现方法
Jan 15 Javascript
一些可能会用到的Node.js面试题
Jun 15 Javascript
JavaScript中var的重要性实例分析
Jul 09 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
mysql5详细安装教程
2007/01/15 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
校庆筹备方案
2014/03/30 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
党员发展大会主持词
2015/07/03 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Python中第三方库Faker的使用详解
2022/04/02 Python