六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 112|回复: 0

IP地址与整数之间的转换

[复制链接]

升级  33.33%

28

主题

28

主题

28

主题

秀才

Rank: 2

积分
100
 楼主| 发表于 2012-12-10 13:07:45 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">作者:elinstudio 发布时间:September 19, 2012 分类:技术文章,Java
原文地址:http://blog.micxp.com/index.php/archives/130/
知识点一个二进制数,按位左移n位,就是把该数的值乘以2的n次方
                 二进制除二即右移一位
1、IP地址转换为整数
原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个无符号32为整数。
举例:一个ip地址为10.0.3.193
每段数字 相对应的二进制数
10     00001010
0       00000000
3       00000011
193   11000001
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是它了。
<div class="dp-highlighter">

  • public class Ip {   
  •     public static void main(String[] args) {   
  •         System.out.print(ip2int("10.0.3.193"));   
  •     }   
  •   
  •     public static long ip2int(String ip) {   
  •         String[] items = ip.split("\\.");   
  •         return Long.valueOf(items[0]) << 24   
  •                 | Long.valueOf(items[1]) << 16  
  •                 | Long.valueOf(items[2]) << 8   
  •                 | Long.valueOf(items[3]);   
  •     }   
  •   
  • }  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表