IP地址与整数之间的转换
<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) << 24
[*] | Long.valueOf(items) << 16
[*] | Long.valueOf(items) << 8
[*] | Long.valueOf(items);
[*] }
[*]
[*]}
页:
[1]