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 相关文章推荐
json简单介绍
Jun 10 Javascript
优化 JavaScript 代码的方法小结
Jul 16 Javascript
javascript模拟select,jselect的方法实现
Nov 08 Javascript
JS分页效果示例
Oct 11 Javascript
Javascript selection的兼容性写法介绍
Dec 20 Javascript
利用bootstrapValidator验证UEditor
Sep 14 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
JS实现的透明度渐变动画效果示例
Apr 28 Javascript
封装微信小程序http拦截器过程解析
Aug 13 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
vue+iview实现文件上传
Nov 17 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
使用php显示搜索引擎来的关键词
2014/02/13 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python Selenium参数配置方法解析
2020/01/19 Python
python如何提升爬虫效率
2020/09/27 Python
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
食品行业求职人的自我评价
2014/01/19 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
投资意向书
2014/07/30 职场文书
实习协议书
2015/01/27 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
2016新年致辞
2015/08/01 职场文书
办公用品管理制度
2015/08/04 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
《勇者辞职不干了》ED主题曲无字幕动画MV公开
2022/04/13 日漫