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 相关文章推荐
模拟用户操作Input元素,不会触发相应事件
May 11 Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 Javascript
使用Javascript实现选择下拉菜单互移并排序
Feb 23 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
Jun 27 Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
详解js静态资源文件请求的处理
Aug 01 Javascript
深入理解JS的事件绑定、事件流模型
May 13 Javascript
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
fetch 如何实现请求数据
Dec 20 Javascript
浅谈vue异步数据影响页面渲染
Oct 29 Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 11 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
用session做客户验证时的注意事项
2006/10/09 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
2009/10/31 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
基于jquery实现二级联动效果
2017/03/30 jQuery
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
python交互式图形编程实例(二)
2017/11/17 Python
python reduce 函数使用详解
2017/12/05 Python
Django如何配置mysql数据库
2018/05/04 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
工程师自我评价怎么写
2013/09/19 职场文书
大专生自我鉴定范文
2013/10/01 职场文书
软件工程专业推荐信
2013/10/28 职场文书
新闻系毕业生推荐信
2013/11/16 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
遗失说明具结保证书
2015/02/26 职场文书
聘任证明怎么写
2015/03/02 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers