如果打开的WLAN网络真的打开,请以编程方式检查

时间:2015-03-29 07:47:32

标签: android wifi android-2.3-gingerbread wlan

有两种开放(未加密)的WLAN网络:一种是真正开放的,在连接后提供IP和网络访问,另一种在连接后需要进行额外的身份验证(通常通过一些特殊的网页)必须输入属于此服务提供者的凭证。)

是否有可能找出什么样的" open" 连接之前网络是否可用?可能以某种方式通过ScanResult对象将结果返回到WiFiManager.startScan()?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

是否有可能找出什么样的" open"网络在连接之前可用吗?

简而言之,没有。 Android WifiManager(实际上,任何计算机和网络驱动程序/堆栈)仅涉及低级别通信。查看OSI模型,主要是物理级别,数据链路级别和网络级别。

WLAN硬件,驱动程序等显然还有其他问题,包括扫描可用的AP并验证它们是否提供“打开”功能。访问或要求身份验证,但在后一种情况下,它仅涉及WEP / WPA样式身份验证,并且不考虑传输层,会话层等的任何更高级别的控制/安全性

通过网页进行的身份验证通常是酒吧,咖啡馆,酒店等的要求,其中WLAN实际上是围栏式的。并且所有HTTP流量都必须通过有效的HTTP代理服务器(可能还会强制进行内容筛选/阻止)。在这种WLAN服务的情况下,通常只允许Web流量 - 例如,尝试使用除HTTP / HTTPS之外的任何其他协议连接到外部世界将被阻止。

因此,任何WLAN(甚至LAN)客户端硬件,驱动程序,堆栈都无法发现尝试连接到远程/外部站点和服务时允许或不需要的内容。