使用Java开发兼容IPv6的网络应用程序 - 编程入门网
= 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |