本文共 2613 字,大约阅读时间需要 8 分钟。
这个方法用来得到主机的 IP 地址,这个 IP 地址可能是 IPv4 的地址,也可能是 IPv6 的地址。 getHostAddress 方法的定义如下:
public String getHostAddress() 无论InetAddress
对象是使用哪种方式创建的,getHostAddress
方法都不会访问DNS
服务器。如果想访问使用IPv6
地址的远程主机,需要在操作系统上安装IPv6
协议。下面是Windows 2003
上安装IPv6
协议的步骤:
第一步: 打开“
本地连接”
属性对话框。如图1所示 。
第二步: 点击“
安装”
按钮,出现“
选择网络组件类型”
对话框,选择“
协议”
选项后,点击“
添加”
按钮,出现如图2
的“
选择网络协议”
对话框,选择“Microsoft TCP/IP
版本6”
,最后点击“
确定”
按钮。
除了使用图形化界面来安装IPv6
外,还可以使用如下命令行来安装IPv6
:
netsh interface ipv6 install 下面的代码 演示了如何利用getHostAddress
得到IPv4
和IPv6
地址,以及如何得到本机的所有IP
地址(包括IPv4
和IPv6
地址)。 package mynet; import java.net. * ; public class MyIP { public static void main(String[] args) throws Exception { // 输出IPv4地址 InetAddress ipv4Address1 = InetAddress.getByName( " 1.2.3.4 " ); System.out.println( " ipv4Address1: " + ipv4Address1.getHostAddress()); InetAddress ipv4Address2 = InetAddress.getByName( " www.ibm.com " ); System.out.println( " ipv4Address2: " + ipv4Address2.getHostAddress()); InetAddress ipv4Address3 = InetAddress.getByName( " myuniverse " ); System.out.println( " ipv4Address3: " + ipv4Address3.getHostAddress()); // 输出IPv6地址 InetAddress ipv6Address1 = InetAddress.getByName( " abcd:123::22ff " ); System.out.println( " ipv6Address1: " + ipv6Address1.getHostAddress()); InetAddress ipv6Address2 = InetAddress.getByName( " www.neu6.edu.cn " ); System.out.println( " ipv6Address2: " + ipv6Address2.getHostAddress()); // 输出本机全部的IP地址 InetAddress Addresses[] = InetAddress.getAllByName( " myuniverse " ); for (InetAddress address : Addresses) System.out.println( " 本机地址: " + address.getHostAddress()); } } 在上面代码 中 使用了www.neu6.edu.cn
作为域名,这个域名是东北大学用于测试IPv6
地址的域名。下面是其他一些可用于测试IPv6
的域名,读者可以使用ping
命令或例程3-9
来测试这些域名。
www6.whu.edu.cn (武汉大学) www.jlu6.edu.cn(吉林大学) www6.usst.edu.cn(上海理工大学) www.fudan6.edu.cn(复旦大学) 在访问这些域名之前,本机必须使用上述的方法或命令行安装IPv6
,否则getByName
方法将抛出UnknownHostException
异常。
ipv4Address1: 1.2.3.4 ipv4Address2: 129.42.60.212 ipv4Address3: 192.168.18.10 ipv6Address1: abcd: 123 : 0 : 0 : 0 : 0 : 0 :22ff ipv6Address2: 2001 :da8: 9000 :b255: 200 :e8ff:feb0:5c5e 本机地址: 192.168.18.10 本机地址: 192.168.83.1 本机地址: 192.168.189.1 本机地址: 193.10.10.10 本机地址: 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 在上面的运行结果中的IP
地址192.168.18.10
和192.10.10.10
是和本机网卡绑定的两个IP
,而192.168.83.1
和192.168.189.1
是VMware
虚拟机软件在本机安装的两个虚拟网卡的地址。最后一个IPv6
地址0:0:0:0:0:0:0:1
是代表本机的IPv6
网址,相当于IPv4
地址的127.0.0.1
。读者可以使用如下命令行添加IPv6
地址和删除IPv6
:
netsh interface ipv6 add address " 本地连接 " aa:bb::cc netsh interface ipv6 uninstall 注意:安装IPv6不需要重新启动计算机,但添加IPv6地址或删除IPv6后,必须重新启动计算机才能生效。 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214761,如需转载请自行联系原作者