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 相关文章推荐
11款基于Javascript的文件管理器
Oct 25 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
Feb 05 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
JavaScript包装对象使用详解
Jul 09 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
JS实现的表头列头固定页面功能示例
Jan 10 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
详解Vue-axios 设置请求头问题
Dec 06 Javascript
微信小程序登录session的使用
Mar 17 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 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
开启PHP Static 关键字之旅模式
2015/11/13 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
JS实现简易日历效果
2021/01/25 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
python实现红包裂变算法
2016/02/16 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python区分不同数据类型的方法
2019/10/14 Python
pandas数据处理之绘图的实现
2020/06/15 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
大学活动总结范文
2014/04/29 职场文书
工程售后服务承诺书
2014/05/21 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers