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 相关文章推荐
用JQuery实现表格隔行变色和突出显示当前行的代码
Feb 10 Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
Jquery跳到页面指定位置的方法
May 12 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
Jan 18 Javascript
详谈javascript异步编程
Feb 21 Javascript
js以及jquery实现手风琴效果
Apr 17 Javascript
webpack css加载和图片加载的方法示例
Sep 11 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
Vue自定义组件的四种方式示例详解
Feb 28 Javascript
JavaScript实现无限轮播效果
Nov 19 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP数组操作类实例
2015/07/11 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python模块搜索路径代码详解
2018/01/29 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
python浪漫表白源码
2019/04/05 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
基于python 凸包问题的解决
2020/04/16 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
阿巴庭院:Abba Patio
2019/06/18 全球购物
信访稳定工作汇报
2014/10/27 职场文书
技术入股合作协议书
2016/03/21 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript