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 对Cookie 操作的封装小结
Dec 31 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 Javascript
JS简单生成随机数(随机密码)的方法
May 11 Javascript
vue实现全选、反选功能
Nov 17 Javascript
react-native封装插件swiper的使用方法
Mar 20 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
Vue 组件修改根实例的数据的方法
Apr 02 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
详解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
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
Vue的Options用法说明
2020/08/14 Javascript
进一步理解Python中的函数编程
2015/04/13 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python3实现随机数
2018/06/25 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
python找出因数与质因数的方法
2019/07/25 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Python读写压缩文件的方法
2020/07/30 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
厨师岗位职责
2013/11/12 职场文书
电气工程师岗位职责
2014/01/01 职场文书
就业协议书怎么填
2014/04/11 职场文书
三严三实对照检查材料
2014/08/25 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
上诉答辩状范文
2015/05/22 职场文书
思品教学工作总结
2015/08/10 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python