- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我意识到 Stack Overflow 上已经有很多用户提出问题,他们的 iOS 应用程序被 Apple 拒绝,因为它们不能在纯 IPv6 网络上运行。
我已经检查了我的代码以确保没有硬编码的 IP 地址(绝对没有)并且没有使用旧的可达性(根本没有)或其他低级网络框架(我们只使用 NSURLSession)。我已经在我的机器上通过了 NAT64 测试网络,应用程序(似乎)运行良好。
这是一个通过 HTTPS(没有其他网络连接)与 API 通信的 Xamarin 应用。
我找到的一些答案表明解决这个问题需要更改服务器配置。
所以我的问题很笼统,需要更改哪些配置?更具体地说,您是否需要域上的 AAAA 记录?如果可以,应该如何配置?
我更多地是以软件开发人员的身份来解决这个问题,所以没有详细了解 IPv6 的工作原理以及需要进行哪些服务器更改。
最佳答案
您的服务器不需要更改。 NAT64 应该负责 IPv4-only 服务器的转换,而 DNS64 应该确保您获得主机名的正确地址。因此,当使用主机名而不是硬编码地址并且您使用 IP 版本中立的 API 时,它通常应该可以正常工作。
它可能会失败的一种情况是,当人们试图更加遵守 Apple 的政策并在他们的 DNS 区域中放置一些虚拟/伪造/错误的 AAAA 记录时。这些实际上会阻止 DNS64 生成正确的记录,因为它认为服务器具有真正的 IPv6 并且不需要转换服务。
MacOS 中内置的 DNS64 没有“真正的”IPv6 互联网连接,因此会忽略此类错误的 AAAA 记录,但真正的 DNS64 不会。因此,在这种情况下,您的本地测试似乎可以正常工作,但 Apple 会发现它失败了。
我在 https://nat64check.org/ 构建了一个测试工具,您可以使用它来检查具有真实 DNS64 和 NAT64 服务的网站。 .请随意使用它。
虽然这不是强制性的,但如果您希望您的 Web 服务具有最佳可达性,那么建议 ity 实际上使您的服务器可通过 IPv6 访问并提供 AAAA 记录。这将使您的服务独立于 NAT64 和 DNS64 转换服务,从而提高可靠性和性能。它还将改善其他拥有 IPv6 的用户的情况,因为它允许他们绕过 ISP 目前需要部署的技巧来弥补 IPv4 地址的不足(如 CGN、DS-Lite 等)。
它还将防止 DNSSEC 出现问题:NAT64 需要生成“假”AAAA 需要使服务在 IPv6 上运行,而 DNSSEC 旨在防止任何人对 DNS 记录撒谎。如果您提供真实的 AAAA 记录,那么 NAT64 就不需要撒谎,DNSSEC 也不会受到影响。
总结一下:最好的办法是让您的服务器可以通过 IPv6 访问,并在具有 AAAA 记录的 DNS 中发布其地址。这将使每个人受益。但不要发布虚假的 AAAA 记录(例如以 ::ffff:
、2001:db8:
、64:ff9b:
、 fc
或 fd
)。这些会伤害所有拥有 IPv6 的人,而现在有相当多的人。当您通过 IPv6 提供您的服务时,请将其视为生产服务并正确执行。
关于ios - 为 IPv6 兼容性配置服务器(用于被拒绝的 iOS 应用程序使用的 API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41281211/
这不是我的专业领域,所以我希望问的是正确的问题。 我们有一台滚动租用的服务器。旧服务器是32位windows服务器,新服务器是64位windows 2008 R2 SP1。 其中一个 Web 应用程序
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已将 Oracle 数据库从 10g 迁移到 12c。从 12c 开始,oracle 不支持 PLSQL_V2_COMPATIBILITY 参数。 该参数用于: https://www.safari
开发环境db server为SqlServer 2005(开发版) 有什么方法可以确保我的 SQL 查询将在 SqlServer 2000 中运行? 此数据库设置为兼容级别“SQL Server 20
我有一个这种形式的类: public class Foo implements Serializable { private static final long serialVersionUI
我有以下代码来隐藏状态栏,取自 http://developer.android.com/training/system-ui/status.html和 Hide status bar android
我正在尝试测试 .prop() 是否方法存在于当前包含的 jQuery 中(出于兼容性原因): if(typeof $.prop === 'function') 我期望上面的条件是 true对于 jQ
当收到新消息时,我在项目中使用BroadcastChannel更改所有选项卡的标题。 问题在于它仅适用于chrome和firefox。因此,我决定使用localStorage创建一个Broadcast
我正在使用一个函数通过 FTP 将一个文件上传到我的服务器。这是我的代码并且工作正常但是创建的文件 example.json 不兼容 UTF8,因为它有 Atlético 而不是 Atlético 例
我正在使用兼容性类来构建用户代理字符串: public abstract class Compatibility { private static int sdkInt = 0; pr
我需要实现一个 C 例程来(解)压缩 gzip 格式的文件。 谁能举个例子? 我试过 zlib,但它似乎不兼容。 谢谢。 最佳答案 zlib 与 gzip 文件完全兼容,但您需要确保您使用的是面向 g
我正在使用以下 CSS 代码,它与 Chrome 完美兼容,但与 IE 浏览器不兼容 .collapse{ display:block; } .collapse + input[type="c
我的应用程序以 android Sdk 的 v10 为目标,但具有 minSdkVersion 的 v6。默认情况下,“match_parent”属性将用于宽度或高度。我应该为 fill_parent
我正在阅读有关 dynamic_cast 的内容,然后我遇到了以下语句 ( from cplusplus.com ): Compatibility note: This type of dynamic
我正在尝试在 Linux 下使用 QtCreator 构建一个用 VS 2008 编写的项目,但我遇到了很多错误: /home/ga/dev/CppGroup/MonteCarlo/main.cpp:
因此,我正在构建一个网站,用户可以在该网站上上传观看视频。我正在使用标准的 HTML5 视频播放器 ( ... )目前,我使用多个来源:MP4、OGG 和 WEBM,以实现跨浏览器兼容性 由于维护三
mozilla 和其他浏览器是否有类似-webkit-box-reflect 的属性?我无法在谷歌上找到哪些其他浏览器支持这个。因此,如果有人可以告诉我或给我链接,那就太好了。 最佳答案 这不仅可以使
我定义了一个自定义的 ValidateSet 参数属性,如下所示: Class MyValidValuesAttribute : System.Management.Automation.IValid
我使用 .net 4.0、linq 等编写 winforms 应用程序。它可以在带有 .net 2.0 的机器上运行吗? 最佳答案 不,不会。为 Framework 4.0 版编译的应用程序将要求该框
我如何专门检查 @keyframes translate3d 动画 与浏览器的兼容性? 请不要关闭这个问题,因为在问这个问题之前我已经尝试了很多 stackoverflow 解决方案。 我想检查我的网
我是一名优秀的程序员,十分优秀!