快速业务通道

使用Java开发兼容IPv6的网络应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
= inetAds.nextElement();        //Check if it''s ipv6 address and reserved  address        if (inetAddress instanceof Inet6Address          && !isReservedAddr(inetAddress)) {          break outer;        }      }    }    String ipAddr = inetAddress.getHostAddress();    // Filter network card No    int index = ipAddr.indexOf(''%'');    if (index > 0) {      ipAddr = ipAddr.substring(0, index);    }    return ipAddr; } /**   * Check if it''s "local address" or "link local address"  or   * "loopbackaddress"   *   * @param ip address   *   * @return result    */ private static boolean isReservedAddr(InetAddress inetAddr)  {    if (inetAddr.isAnyLocalAddress() ||  inetAddr.isLinkLocalAddress()      || inetAddr.isLoopbackAddress()) {      return true;    }    return false; }

使用Java开发兼容IPv6的网络应用程序(5)

时间:2011-09-04 IBM 朱益盛 杨晖 傅啸

为了支持 IPv6,Java 中增加了两个 InetAddress 的子类:Inet4Address 和 Inet6Address。一般情况下这两个子类并不会被使用到,但是当我们需要分别处 理不同的 IP 协议时就非常有用,在这我们根据 Inet6Address 来筛选地址。

isReservedAddr() 方法过滤了本机特殊 IP 地址,包括“LocalAddress”, “LinkLocalAddress”和“LoopbackAddress”。读者可根据自己的需要修改过滤 标准。

另一个需要注意的地方是:在 windows 平台上,取得的 IPv6 地址后面可能 跟了一个百分号加数字。这里的数字是本机网络适配器的编号。这个后缀并不是 IPv6 标准地址的一部分,可以去除。

IPv4/IPv6 双环境下,网络的选择和测试

我们先看一下笔者所在的 IPv4/IPv6 开发测试环境及其配置方法。

笔者所处的 IPv4/IPv6 双环境是一个典型的“6to4”双栈网络,其中存在着 一个 IPv6 到 IPv4 的映射机制,即任意一个 IPv6 地址 2002:92a:8f7a:100:a:b:c:d 在路由时会被默认映射为 IPv4 地址 a.b.c.d,所 以路由表只有一套。

在此环境内,IPv4 地址与 IPv6 地址的一一对应是人工保证的。如果一台客 户机使用不匹配的 IPv4 和 IPv6 双地址,或者同时使用 DHCPv4 和 DHCPv6(可 能会导致 IPv4 地址和 IPv6 地址不匹配),会导致 IPv6 的路由寻址失败。

正因为如此,为了配置双地址环境,我们一般使用 DHCPv4 来自动获取 IPv4 地址,然后人工配置相对应的 IPv6 地址。

Windows 系统

Windows 2000 及以下:不支持 IPv6

Windows 2003 和 Windows XP:使用 Windows 自带的 netsh 命令行方式添加 IPv6 地址以及 DNS,例如:C:\>netsh interface ipv6 add address “Local Area Connection” 2002:92a:8f7a:100:10:13:1:2 和 C:\>netsh interface ipv6 add dns “Local Area Connection” 2002:92a:8f7a:100:10::250

Windows 2008 和 Windows Vista:既可以使用 Windows 网络属性页面进行配 置,也可以使用类似 Windows 2003 和 Windows XP 的 netsh 命令行来配置

Linux 系统 (以下是 IPv6 的临时配置方法,即不修改配置文件,计算机重 启后配置失效)

Redhat Linux:最简单的方法是使用 ifconfig 命令行添加 IPv6 地址,例如 :ifconfig eth0 inet6 add 2002:92a:8f7a:100:10:14:24:106/96。

SUSE Linux:同上。

从实践上讲,由于 Java 的面向对象特性,以及

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