我有一个阅读器应用程序,我们正在为某个机构定制阅读器,以允许用户使用该应用程序并阅读其内容。我必须验证他是否在某个代理覆盖范围内,以及他是否登录到该代理。
我个人在网络和代理方面的经验很少,因此我想问一下,这是否可行,如果可行,最好的方法是什么?
如果这是可行的,Apple 会接受它吗?Apple 团队如何测试该功能?
我已经了解了这个解决方案,但我不确定这是否是我所需要的: How can I get the username for a proxy host from KeyChain?
最佳答案
我会去使用设备的公共(public) WAN IP 地址来检查代理使用情况。
了解代理的 IP,我会将它们放入白名单中,最好存储在外部服务器上,该服务器将由应用程序查询,而不是将其硬编码到应用程序中,以防代理服务器更改其 IP。
在每次应用程序启动时,我都会获取设备的公共(public) IP,如果用户使用代理,这将是代理 IP 之一。因此,您可以简单地比较这些 IP,如果它们匹配,您就知道用户正在使用代理。
如果您不知道代理的具体 IP,有很多可用的服务可以确定 IP 是否属于代理以及代理的类型。 IP2location是提供此类内容的众多网站之一。
关于ios - 允许基于ip访问应用,或者代理网络覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51572920/