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 相关文章推荐
js加解密 脚本解密
Feb 22 Javascript
基于prototype扩展的JavaScript常用函数库
Nov 30 Javascript
JavaScript的==运算详解
Jul 20 Javascript
AngularJS动态生成div的ID源码解析
Aug 29 Javascript
js表单登陆验证示例
Oct 19 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
微信小程序动态的加载数据实例代码
Apr 14 Javascript
JavaScript常见JSON操作实例分析
Aug 08 Javascript
详解如何构建Promise队列实现异步函数顺序执行
Oct 23 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 Javascript
angular异步验证器防抖实例详解
Mar 31 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防CC攻击实现代码
2011/12/29 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
vue生命周期实例小结
2018/08/15 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Django中间件实现拦截器的方法
2018/06/01 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
Python实现一个论文下载器的过程
2021/01/18 Python
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
教师绩效考核方案
2014/01/21 职场文书
会计学自荐信
2014/06/03 职场文书
企业法人代表任命书
2014/06/06 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python