`
haierboos
  • 浏览: 438264 次
文章分类
社区版块
存档分类
最新评论

Java网络编程从入门到精通(8):用getAddress方法获得IP地址

阅读更多

本文为原创,如需转载,请注明作者和出处,谢谢!

上一篇:Java网络编程从入门到精通(7):用getHostAddress方法获得IP地址

getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte数组形式的IP地址。getAddress方法的定义如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->publicbyte[]getAddress()
这个方法返回的byte数组是有符号的。在Javabyte类型的取值范围是-128127。如果返回的IP地址的某个字节是大于127的整数,在byte数组中就是负数。由于Java中没有无符号byte类型,因此,要想显示正常的IP地址,必须使用intlong类型。下面代码演示了如何利用getAddress返回IP地址,以及如何将IP地址转换成正整数形式。
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->package mynet;

importjava.net.*;

publicclass MyIP
{
publicstaticvoidmain(String[]args)throwsException
{
InetAddressaddress
=InetAddress.getByName("www.csdn.net");
byteip[]=address.getAddress();
for(byteipSegment:ip)
System.out.print(ipSegment
+"");
System.out.println(
"");
for(byteipSegment:ip)
{
intnewIPSegment=(ipSegment<0)?256+ipSegment:ipSegment;
System.out.print(newIPSegment
+"");
}
}
}

运行结果:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->-4510026122
21110026122

从上面的运行结果可以看出,第一行输出了未转换的IP地址,由于www.csdn.netIP地址的第一个字节大于127,因此,输出了一个负数。而第二行由于将IP地址的每一个字节转换成了int类型,因此,输出了正常的IP地址。

下一篇:
Java网络编程从入门到精通(9):使用isXxx方法判断地址类型



国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购

分享到:
评论

相关推荐

    根据ip查询城市名称(含IP地址库) java版本

    根据ip查询城市名称(含IP地址库) java版本 将QQWry.dat放到src下。。 调用如下接口方法 获取城市名称: String cityname = net.sololive.ip.IPSeeker.getAddress(ip);

    计算机网络课程设计报告-UDP编程.docx

    计算机网络课程设计报告-UDP编程.docx 一、问题描述 (1)目的:实现UDP(User Data Protocol)编程,包括发送和接受UDP报文。... 4、DatagramPacket的getAddress方法能获得UDP消息发送者的网络地址信息。

    根据IP获得详细地区

    wry.dat放置web-inf目录下,导入ipaddress.1.0.jar 使用方法: 实例Ipaddress Ipaddress ip = new Ipaddress(); ip.getAddress("request获得的ip地址")

    基于JAVA的ICQ系统

    当用户通过UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就...

    JAVA写的ICQ系统源代码

    当用户通过 UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就...

    基于JAVA的ICQ系统的设计于实现

    当用户通过UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就...

    Internet-Chat-Room-in-Java:计算机网络项目

    Java互联网聊天室 ##说明:此Internet聊天室服务使用非持久套接字连接。 每次服务器或客户端建立连接时,连接将在完成任务(例如发送消息或ALIVE信号)后立即关闭。 服务器扮演着类似于消息中心的角色,可以为用户...

    Laravel开发-laravel-getaddress

    Laravel开发-laravel-getaddress getaddress.io的laravel包

    jelvis:用于Java 8和Scala的Elvis运算符-在链接呼叫中对NPE说不!

    杰维斯 jelvis是Java 8和Scala的Elvis运算符。 jelvis在链式调用中吃掉NullPointerException并返回null。 例如,在此链接调用中: person.getAddress().getCountry()您至少可以得到两个NPE:第person是在person为...

    用java程序对表导出Excel的源代码

    String[] topText = { "编号", "姓名", "电话信息", "地址" }; //创建excel区域名称 WritableSheet sheet = book.createSheet("客户资料" + i, i); int count = (i + 1) * pageSize &gt; userInfoList....

    Java聊天室源代码

    import java.awt.*; import java.awt.event.*; import java.net.*; public class Chat { Frame f = new Frame("聊天室"); TextField tfIP = new TextField(15); List lst = new List(6); DatagramSocket ds; ...

    Java实现UDP服务器和客户端模型.rar

    Java实现UDP服务器模型,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。比如客户端模型如下:  DatagramSocket socket=new DatagramSocket(); //实例化一个数据报Socket  ...

    AheadLib-x86-x64:hijack dll源代码生成器。 支持x86x64

    AheadLib-x86-x64 hijack dll Source Code Generator. support x86/x64 snapshot screen 不支持导出符号带有??的方法! NOTE Pay attention to the generated file header prompt information

    JAVA UDP客户端服务端编写实例.rar

    JAVA UDP客户端服务端编写实例,  byte[] buffer=new byte[256]; //缓冲区数组  DatagramSocket socket=new DatagramSocket(port);//实例化数据报Socket  DatagramPacket packet;  System.out.println(...

    java_icq.rar_DatagramPacket

    基于JAVA的ICQ系统当用户通过UDP收到消息后,可以通过 DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果...

    Java反射封装库joor.zip

    jOOR 在java原生的反射基础上进行了简单的封装,使得反射使用方便不少! 举个简单的列子,供大家参考。 java 原生反射写法: try { Method m1 = department.getClass().getMethod("getEmployees"); Employee ...

    Android 获取蓝牙Mac地址的正确方法

    android 从6.0开始,通过BluetoothAdapter.getDefaultAdapter().getAddress()获取的地址是一个固定值02:00:00:00:00:00。6.0已经对蓝牙Wi-Fi的MAC地址做了隐藏。 以下方法能正确的获取android自带蓝牙的Mac地址: 1....

    json相关jar包.zip

    在前端和后端进行数据传输的时候这种格式也是很受欢迎的,后端返回json格式的字符串,前台使用js中的JSON.parse()方法把JSON字符串解析为json对象,然后进行遍历,供前端使用。 下面进入正题,介绍在JAVA中JSON和...

Global site tag (gtag.js) - Google Analytics