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 相关文章推荐
让mayfish支持mysqli数据库驱动的实现方法
May 22 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
使用jQuery在对象中缓存选择器的简单方法
Jun 30 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
详解vue-cli开发环境跨域问题解决方案
Jun 06 Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 Javascript
js实现音乐播放控制条
Sep 09 Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
小程序实现搜索框
Jun 19 Javascript
JavaScript Window窗口对象属性和使用方法
Jan 19 Javascript
小程序跳转H5页面的方法步骤
Mar 06 Javascript
在vue项目中 实现定义全局变量 全局函数操作
Oct 26 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实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
Python装饰器的函数式编程详解
2015/02/27 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
python 日志 logging模块详细解析
2020/03/31 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
电子商务专业应届毕业生求职信
2014/06/21 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
体育运动会广播稿
2014/10/05 职场文书
升学宴祝酒词
2015/08/11 职场文书
反邪教教育心得体会
2016/01/15 职场文书
python使用shell脚本创建kafka连接器
2022/04/29 Python