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 15 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
Ext GridPanel加载完数据后进行操作示例代码
Jun 17 Javascript
js的延迟执行问题分析
Jun 23 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
解析Vue.js中的组件
Feb 02 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
MockJs结合json-server模拟后台数据
Aug 26 Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 Javascript
详解JavaScript自定义函数
Jul 29 Javascript
Node.js 中判断一个文件是否存在
Aug 24 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原创论坛
2006/10/09 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
理解javascript对象继承
2016/04/17 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
Weblogic的布署方式
2013/08/23 面试题
幼儿园社区活动总结
2014/07/07 职场文书
给老师的一封感谢信
2015/01/20 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle