快速业务通道

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

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

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

时间:2011-01-12

这个方法用来得到主机的IP地址,这个IP地址可能是IPv4的地址,也可能是IPv6的地址。getHostAddress方法的定义如下:

public String getHostAddress()

无论InetAddress对象是使用哪种方式创建的,getHostAddress方法都不会访问DNS服务器。如果想访问使用IPv6地址的远程主机,需要在操作系统上安装IPv6协议。下面是Windows 2003上安装IPv6协议的步骤:

第一步:打开“本地连接”属性对话框。如图1所示。

第二步:点击“安装”按钮,出现“选择网络组件类型”对话框,选择“协议”选项后,点击“添加”按钮,出现如图2的“选择网络协议”对话框,选择“Microsoft TCP/IP 版本6”,最后点击“确定”按钮。

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

时间:2011-01-12

除了使用图形化界面来安装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:

添加IPv6地址

netsh interface ipv6 add address "本地连接" aa:bb::cc

删除IPv6

netsh interface ipv6 uninstall

注意:安装IPv6不需要重新启动计算机,但添加IPv6地址或删除IPv6后,必须重新启动计算机才能生效。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号