getAddress方法和getHostAddress类似它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址而getAddress方法返回的是byte数组形式的IP地址getAddress方法的定义如下
publicbyte[]getAddress()
这个方法返回的byte数组是有符号的在Java中byte类型的取值范围是;如果返回的IP地址的某个字节是大于的整数在byte数组中就是负数由于Java中没有无符号byte类型因此要想显示正常的IP地址必须使用int或long类型下面代码演示了如何利用getAddress返回IP地址以及如何将IP地址转换成正整数形式
packagemynet;
importjavanet*;
publicclassMyIP
{
publicstaticvoidmain(String[]args)throwsException
{
InetAddressaddress=InetAddressgetByName("www网址net");
byteip[]=addressgetAddress();
for(byteipSegment:ip)
Systemoutprint(ipSegment+"");
Systemoutprintln("");
for(byteipSegment:ip)
{
intnewIPSegment=(ipSegment<)?+ipSegment:ipSegment;
Systemoutprint(newIPSegment+"");
}
}
}
运行结果
从上面的运行结果可以看出第一行输出了未转换的IP地址由于www网址net的IP地址的第一个字节大于因此输出了一个负数而第二行由于将IP地址的每一个字节转换成了int类型因此输出了正常的IP地址