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 cookie解码函数(兼容ff)
Mar 17 Javascript
js中的值类型和引用类型小结 文字说明与实例
Dec 12 Javascript
为原生js Array增加each方法
Apr 07 Javascript
angularJS 中input示例分享
Feb 09 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
VueJS事件处理器v-on的使用方法
Sep 27 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 Javascript
vue2.0结合Element-ui实战案例
Mar 06 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
Sep 12 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP 验证码的实现代码
2011/07/17 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
php实现图片压缩处理
2020/09/09 PHP
推荐dojo学习笔记
2007/03/24 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
vue调用语音播放的方法
2019/09/27 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
Python object类中的特殊方法代码讲解
2020/03/06 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
new修饰符是起什么作用
2015/06/28 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
大学毕业的自我鉴定
2013/10/08 职场文书
关于期中考试的反思
2014/02/02 职场文书
文明村镇申报材料
2014/05/06 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
服务承诺书怎么写
2014/05/24 职场文书
绘画专业自荐信
2014/07/04 职场文书
德育标兵事迹材料
2014/08/24 职场文书
2014年除四害工作总结
2014/12/06 职场文书
员工辞职信范文大全
2015/05/12 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle