我有一个小程序,可以连接回同一主机上运行的服务。托管小程序的网络服务器会监听 IPv4 和 IPv6,小程序想要连接的服务也是如此。
问题是,从小程序中我只能得到页面 URL 或代码库 URL。从 URL 中,我无法检测浏览器是否将其解析为 IPv4 还是 IPv6,因此当通过 IPv6 加载小程序并使用 URL 告诉小程序在哪个服务器上查找服务时,沙盒会失败规则,因为它默认解析为 IPv4 地址。
想到的唯一解决方案是签署小程序,以便它可以请求连接到任意服务器,但我希望有一个更简单的解决方案(不涉及购买证书或将我的自定义 CA 添加到信任库)访问该站点的所有系统)。
任何人都有更好的解决方案。
最佳答案
使用InetAddress.getAllByName() 。结果的顺序将告诉您应该使用哪个(即,您应该首先尝试使用 result[0])。
重要的问题不是“小程序是如何加载的”,而是“我应该如何连接到主机”。
关于java - 如何确定小程序是否通过 IPv6 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267128/