我有多个包含迷你Web服务器的硬件设备,因为他们使用DHCP可以在本地域上拥有任何IP地址。
我使用NSURLSession扫描IP地址范围.2到.253,尝试获取这些设备托管的index.html。
只要我关闭了应用传输安全功能,这种方法很有用,当然,只要我打开它就会失败,因为它不允许IP地址连接。
有没有做到这一点,没有离开ATS并祈祷Apple允许我通过我解释需要?
一些伪代码:)
App figures out its own IP address say 192.168.0.10
for i in 2..<254 {
creates a new ip address of 192.168.0.2, .3, .4 etc etc
NSURLSession to https://above IP address/index.html
if ( succeeds ) {
I found a device
}
}
开启ATS,不再允许
答案 0 :(得分:0)
不确定。您可以将HTTPS与自签名证书一起用于IP地址,然后为用户提供一种方法来粘贴允许的密钥或允许的自定义根证书(您的选择),然后以自动接受的方式粘贴override TLS chain validation答案是A.通过正常的证书检查或B.匹配那些指定的密钥或由这些根证书签名。
我并不是说这是微不足道的,但可以做到。
话虽如此,你真的不应该像这样探索网络。您应该使用服务发现。这对证书问题没有帮助,但它会使你的应用程序因滥用局域网而不太可能被拒绝。 : - )