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_03(ExtJs Grid的简单使用)
Oct 02 Javascript
js 鼠标点击事件及其它捕获
Jun 04 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
May 11 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
vue-cli之router基本使用方法详解
Oct 17 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
Vue组件开发技巧总结
Mar 04 Javascript
详解Vue之计算属性
Jun 20 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 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实现的购物车类实例
2015/06/17 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
python输入多行字符串的方法总结
2019/07/02 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
毕业生教师求职信
2013/10/20 职场文书
继承公证书
2014/04/09 职场文书
防沙治沙典型材料
2014/05/07 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis