本文为原创,如需转载,请注明作者和出处,谢谢!
上一篇: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
数组是有符号的。在Java
中byte
类型的取值范围是-128
〜127
。如果返回的IP
地址的某个字节是大于127
的整数,在byte
数组中就是负数。由于Java
中没有无符号byte
类型,因此,要想显示正常的IP
地址,必须使用int
或long
类型。下面代码演示了如何利用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.net的IP地址的第一个字节大于127,因此,输出了一个负数。而第二行由于将IP地址的每一个字节转换成了int类型,因此,输出了正常的IP地址。
下一篇:Java网络编程从入门到精通(9):使用isXxx方法判断地址类型
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!《银河系列原创教程》发布《Java Web开发速学宝典》出版,欢迎定购
分享到:
相关推荐
根据ip查询城市名称(含IP地址库) java版本 将QQWry.dat放到src下。。 调用如下接口方法 获取城市名称: String cityname = net.sololive.ip.IPSeeker.getAddress(ip);
计算机网络课程设计报告-UDP编程.docx 一、问题描述 (1)目的:实现UDP(User Data Protocol)编程,包括发送和接受UDP报文。... 4、DatagramPacket的getAddress方法能获得UDP消息发送者的网络地址信息。
wry.dat放置web-inf目录下,导入ipaddress.1.0.jar 使用方法: 实例Ipaddress Ipaddress ip = new Ipaddress(); ip.getAddress("request获得的ip地址")
当用户通过UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就...
当用户通过 UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就...
当用户通过UDP收到消息后,可以通过DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就...
Java互联网聊天室 ##说明:此Internet聊天室服务使用非持久套接字连接。 每次服务器或客户端建立连接时,连接将在完成任务(例如发送消息或ALIVE信号)后立即关闭。 服务器扮演着类似于消息中心的角色,可以为用户...
Laravel开发-laravel-getaddress getaddress.io的laravel包
杰维斯 jelvis是Java 8和Scala的Elvis运算符。 jelvis在链式调用中吃掉NullPointerException并返回null。 例如,在此链接调用中: person.getAddress().getCountry()您至少可以得到两个NPE:第person是在person为...
String[] topText = { "编号", "姓名", "电话信息", "地址" }; //创建excel区域名称 WritableSheet sheet = book.createSheet("客户资料" + i, i); int count = (i + 1) * pageSize > userInfoList....
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服务器模型,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。比如客户端模型如下: DatagramSocket socket=new DatagramSocket(); //实例化一个数据报Socket ...
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客户端服务端编写实例, byte[] buffer=new byte[256]; //缓冲区数组 DatagramSocket socket=new DatagramSocket(port);//实例化数据报Socket DatagramPacket packet; System.out.println(...
基于JAVA的ICQ系统当用户通过UDP收到消息后,可以通过 DatagramPacket的方法InetAddress getAddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果...
jOOR 在java原生的反射基础上进行了简单的封装,使得反射使用方便不少! 举个简单的列子,供大家参考。 java 原生反射写法: try { Method m1 = department.getClass().getMethod("getEmployees"); Employee ...
android 从6.0开始,通过BluetoothAdapter.getDefaultAdapter().getAddress()获取的地址是一个固定值02:00:00:00:00:00。6.0已经对蓝牙Wi-Fi的MAC地址做了隐藏。 以下方法能正确的获取android自带蓝牙的Mac地址: 1....
在前端和后端进行数据传输的时候这种格式也是很受欢迎的,后端返回json格式的字符串,前台使用js中的JSON.parse()方法把JSON字符串解析为json对象,然后进行遍历,供前端使用。 下面进入正题,介绍在JAVA中JSON和...