当前位置:  编程技术>java/j2ee

java实现ip地址与十进制数相互转换

    来源: 互联网  发布时间:2014-10-22

    本文导语:  先看实例 代码如下 代码如下: classip { privatestaticlongiptolong(stringstrip) //将127.0.0.1形式的ip地址转换成10进制整数,这里没有进行任何错误处理 { intj=0; inti=0; long[]ip=newlong[4]; intposition1=strip.indexof("."); intposition2=strip.indexof(".",position1+...

先看实例
代码如下
代码如下:

classip
{
privatestaticlongiptolong(stringstrip)
//将127.0.0.1形式的ip地址转换成10进制整数,这里没有进行任何错误处理
{
intj=0;
inti=0;
long[]ip=newlong[4];
intposition1=strip.indexof(".");
intposition2=strip.indexof(".",position1+1);
intposition3=strip.indexof(".",position2+1);
ip[0]=long.parselong(strip.substring(0,position1));
ip[1]=long.parselong(strip.substring(position1+1,position2));
ip[2]=long.parselong(strip.substring(position2+1,position3));
ip[3]=long.parselong(strip.substring(position3+1));
return(ip[0]16));//将高8位置0,然后右移16位
sb.append(".");
sb.append(string.valueof((longip&0x0000ffff)>>>8));
sb.append(".");
sb.append(string.valueof(longip&0x000000ff));
sb.append(".");
returnsb.tostring();
}
publicstaticvoidmain(string[]args)
{
system.out.println("ip地址的各种表现形式:rn");
system.out.print("32位二进制形式:");
system.out.println(long.tobinarystring(3396362403l));
system.out.print("十进制形式:");
system.out.println(iptolong("202.112.96.163"));
system.out.print("普通形式:");
system.out.println(longtoip(3396362403l));
}
}

运行结果:
ip地址的各种表现形式:
32位二进制形式:11001010011100000110000010100011
十进制形式:3396362403
普通形式:202.112.96.163.
输出完成(耗时1秒)-正常终止
我们再一步步分开来分析一下
知识点:一个二进制数,按位左移n位,就是把该数的值乘以2的n次方
二进制除二即右移一位
1、IP地址转换为整数
原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个无符号32为整数。
举例:一个ip地址为10.0.3.193
每段数字相对应的二进制数
1000001010
000000000
300000011
19311000001
组合起来即为:00001010000000000000001111000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是它了。
代码如下
代码如下:

publicclassIp{
publicstaticvoidmain(String[]args){
System.out.print(ip2int("10.0.3.193"));
}
publicstaticlongip2int(Stringip){
String[]items=ip.split(".");
returnLong.valueOf(items[0])24)&0xFF);
returnsb.toString();
}
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java中如何将ascII 码转换成字符以及将字符转换成ascII码? 在线等待加分!
  • 如何将java.util.Date类型的日期转换成java.sql.Date类型的日期?
  • 我在jbuilder中新建一个servlet,源程序为java文件,是怎么从java到servler转换的?
  • 在java中,怎么将UTF-8码转换为GB码?
  • java自定义枚举转换器示例
  • Java对象转换库 EZMorph
  • java DocConverter.jar转换word文档到pdf 中文乱码问题
  • java数据转换的问题
  • 一个关于java写的web应用如何转换平台的问题,急急急!!
  • java中强制转换
  • java数据类型的转换问题。
  • Java 繁简字体转换问题!!!急!!!
  • 对面的大虾看过来:sql到java的类型转换?
  • 求助java中如何在unicode和GBK2312之间转换
  • 在java中如何实现String到int型的转换???用什么方法???
  • Java到C++的转换工具 J2cpp
  • 怎样将标准的C++代码转换成JAVA代码??
  • Java中的一个转换成asc码函数?
  • 请问,如何用java程序转换xsl?
  • 怎样把String转换成int?怎样获得系统时间并转换成java.sql.date类型?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3