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.boxy对话框插件代码
Oct 26 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
Sep 02 Javascript
JS中的数组的sort方法使用示例
Jan 22 Javascript
JQuery获取表格数据示例代码
May 26 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
vue绑定class与行间样式style详解
Aug 16 Javascript
js断点调试心得分享(必看篇)
Dec 08 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
在vue项目中使用md5加密的方法
Sep 14 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
PHP面向对象法则
2012/02/23 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
Python解惑之True和False详解
2017/04/24 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
详解Python3 pandas.merge用法
2019/09/05 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python configparser模块操作代码实例
2020/06/08 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
公司出纳岗位职责
2013/12/07 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
民间借贷借条范本
2015/05/25 职场文书
高温慰问简报
2015/07/21 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB