使用xamarin(ios)扫描本地网络中的设备

时间:2016-02-15 13:15:38

标签: c# ios xamarin

我会问是否有可能获得有关本地无线网络中连接设备的信息。 xamarin有没有这样做api?

3 个答案:

答案 0 :(得分:1)

似乎Xamarin没有这方面的API,但Microsoft引入了Pingdocumentation here)和NetworkInterface类(documentation here)您可以使用的.NET 2.0。

基本上,您需要做的是ping本地网络上的IP地址,您可以使用SendAsync()异步执行此操作。然后,您可以通过注册EventHandlerPingCompleted来注册回调。回调将包含PingCompletedEventArgs,您可以使用该IP来检索有关设备的基本信息(例如MACHostnameNSString *path = @"\\fake\aaa\bbb\ccc\ddd\eee.pdf"; )。

您可以找到有关实施的完整指南here

我希望这会有所帮助。

注意:当然,这完全取决于您希望检索的信息类型。虽然,我认为您只能期望检索网络上设备的基本信息,因为其他一切都可能存在安全风险。

辅助说明:根据您希望在网络上发现的设备,您还可以使用SNMP component来发现路由器,交换机,打印机等设备,等等。

答案 1 :(得分:0)

我在想你正在寻找第2层的哪些设备已经注册到你的无线控制器/接受点/路由器,并且通过连接你指的是有多少设备成功建立了802.x握手(意味着安全交换和频道建立已经发生)。

有一个工具可以完成这项工作(从未在我的Mac上测试过),你可以检查Flying Squirrel以达到上述目的。这将是一个独立的无线网络嗅探器,你需要用于wifi等的密码才能完成这项工作。

如果您有权访问公开仪器(MIB)的设备,那么您可以通过SNMP走设备从设备获取该信息。在这个级别,您当然会获得MAC地址表,如果您的路由器上运行了DHCP,那么访问DHCP表可能会为您提供有关MAC到IP映射的信息。在某些中高端网络设备上,可以使用CISCO-DOT11-ASSOCIATION-MIB之类的MIB。另外我假设你在这里提到802.11还有其他无线协议,比如BlueTooth等,它们使用不同的扫描技术,所以答案取决于你在这里指的是什么类型的网络。

答案 2 :(得分:0)

好的,我找到了一种不用嗅探本地网络的方法。在我的案例中,以下方式更有意义......

案例: 我想连接到提供自己的wlan网络的设备。然后我连接到它并将家庭wlan网络传递给它。设备重新启动,现在配置为本地家庭网络中的客户端。现在我需要本地IP进行服务通信。

我的解决方案: 我对设备进行了注册调用。该设备给我mac地址。现在我在(在电话设备上)注册在线服务中接入点设备的mac地址。重新启动设备并获取新的本地IP地址后,它将发送到在线服务。 我可以通过轮询或从服务器获取推送通知来检索本地IP地址......