快速业务通道

Java网络编程从入门到精通(2):创建InetAddress对象的四个静态方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
结果:

ComputerName/192.168.18.10

测试3:代表本机的localhost

执行如下命令:

java inet.MyInetAddress2 localhost

运行结果:

localhost/127.0.0.1

Java网络编程从入门到精通(2):创建InetAddress对象的四个静态方法(3)

时间:2011-01-12

对于本机来说,除了可以使用本机名或localhost外,还可以在hosts文件中对本机做“IP/域名”映射(在Windows操作系统下)。这个文件在C:\WINDOWS\system32\drivers\etc中。打开这两个文件中,在最后加一行如下所示的字符串:

192.168.18.100   www.mysite.com

测试4:本机域名www.mysite.com

执行如下命令:

java inet.MyInetAddress2 www.mysite.com

运行结果:

www.mysite.com/192.168.18.100

getByName方法除了可以使用域名作为参数外,也可以直接使用IP地址作为参数。如果使用IP地址作为参数,输出InetAddress对象时域名为空(除非调用getHostName方法后,再输出InetAddress对象。getHostName方法将在下面的内容介绍)。读者可以使用129.42.58.212作为MyInetAddress2的命令行参数(这是www.ibm.com的IP),看看会得到什么结果。

三、getAllByName方法

使用getAllByName方法可以从DNS上得到域名对应的所有的IP。这个方法返回一个InetAddress类型的数组。这个方法的定义如下:

public static InetAddress[] getAllByName(String host) throws UnknownHostException

与getByName方法一样,当host不存在时,getAllByName也会抛出UnknowHostException异常,getAllByName也不会验证IP地址是否存在。下面的代码演示了getAllByName的用法:

package inet;   import java.net.*;   public class MyInetAddress3   {       public static void main(String[] args) throws Exception       {           if (args.length == 0)               return;           String host = args[0];           InetAddress addresses[] = InetAddress.getAllByName(host);           for (InetAddress address : addresses)               System.out.println(address);       }   }

测试1:远程主机www.csdn.net

执行如下命令:

java inet.MyInetAddress3 www.csdn.net

运行结果:

www.csdn.net/211.100.26.124 www.csdn.net/211.100.26.121 www.csdn.net/211.100.26.122 www.csdn.net/211.100.26.123

Java网络编程从入门到精通(2):创建InetAddress对象的四个静态方法(4)

时间:2011-01-12

将上面的运行结果和例程3-2的测试1的运行结果进行比较,可以得出一个结论,getByName方法返回的IP地址就是getAllByName方法返回的第一个IP地址。事实上,getByName的确是这样实现的,getByName的实现代码如下:

public static InetAddress getByName(String host) throws UnknownHostException {      return InetAddress.getAllByName(host)[0]; }

测试2:使用www.csdn.net的一个IP 

执行如下命令:

java inet.MyInetAddress3 211.100.26.122

运行结果:

/211.100.26.122

四、getByAddress方法

这个方法必须通过IP地址来创建InetAddress对象,而且IP地址必须是byte数组形式。getByAddress方法有两个重载形式,定义如下:

public static InetAddress getByAddress(byte[] addr) throws UnknownHostException public static InetAddress getByAddress(String host, byte[] addr) throws UnknownHostException

第一个重载形式只需要传递byte数组形式的IP地址,getByAddress方法并不验证这个IP地址是否存在,只是简单地创建一个InetAddress对象。addr数组的长度必须是4(IPv

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号