如何确定是否通过IPv6加载了applet

时间:2011-03-10 23:20:01

标签: java applet ipv6 ipv4

我有一个小程序,它连接回在同一主机上运行的服务。托管applet的Web服务器同时监听IPv4和IPv6,以及applet想要连接的服务。

问题在于,我可以从applet中获取所有内容,即页面URL或Codebase URL。从URL我无法检测到它是否被浏览器解析为IPv4或IPv6,因此当applet通过IPv6加载时我使用URL告诉applet哪个服务器在其上查找服务失败了Sandbox规则,因为它默认解析为IPv4地址。

想到的唯一解决方案是签署applet以便它可以请求连接到任意服务器,但我希望有一个更简单的解决方案(不涉及购买证书或将我的自定义CA添加到信任库访问该网站的所有系统。)

任何人都有更好的解决方案。

1 个答案:

答案 0 :(得分:2)

使用InetAddress.getAllByName()。结果的顺序将告诉您应该使用哪个(即,您应该首先尝试使用result [0]。)

重要的问题不是“如何加载applet”,而是“我应该如何连接到主机”。