Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何知道哪些设备连接到我的网络(使用C#)?_C#_Mysql_Networking_Wireless - Fatal编程技术网

如何知道哪些设备连接到我的网络(使用C#)?

如何知道哪些设备连接到我的网络(使用C#)?,c#,mysql,networking,wireless,C#,Mysql,Networking,Wireless,当用户连接到我的无线网络时,我尝试在MySQL数据库中插入一些数据(比如MAC地址)。为了做到这一点,我一直在用我的iPhone和“arp-a”cmd进行测试,我注意到直到我ping我的iPhone的IP地址,结果表才会刷新。例如,我将iPhone连接到无线网络,有时我几乎可以立即在“arp-a”的结果上看到iPhone IP,但当我断开网络连接时,iPhone IP仍然显示在结果上。我能做些什么来避免这种情况?如果我想对许多移动设备执行此操作,是否必须ping大量IP号码 非常感谢您的帮助。如

当用户连接到我的无线网络时,我尝试在MySQL数据库中插入一些数据(比如MAC地址)。为了做到这一点,我一直在用我的iPhone和“arp-a”cmd进行测试,我注意到直到我ping我的iPhone的IP地址,结果表才会刷新。例如,我将iPhone连接到无线网络,有时我几乎可以立即在“arp-a”的结果上看到iPhone IP,但当我断开网络连接时,iPhone IP仍然显示在结果上。我能做些什么来避免这种情况?如果我想对许多移动设备执行此操作,是否必须ping大量IP号码


非常感谢您的帮助。

如果您只是尝试在连接时插入SQL表,并且有一个dd wrt/open wrt路由器,您可以在路由器上编写一个简单的脚本,在客户端连接或断开连接时提交SQL查询


如果您没有dd wrt/open wrt功能的路由器,这将很快变得更加困难。Arp是检测连接的好方法,但不会检测断开连接。您可以对所有已知连接的设备运行定期ping以确定断开连接。不管怎样,你都不能直接用C语言

我认为ARP表保存了对断开连接一段时间的设备的MAC/IP对的引用,因此,如果设备在短时间后重新连接,它将获得相同的IP。我想你回答了你自己的问题。@Renan,谢谢你的回答,ARP有时需要很长时间才能更新。例如,当我将iPhone连接到网络时,我必须ping我的iPhone IP号码,然后运行“arp-a”,如果我不ping,则需要一些时间才能识别iPhone IP号码;当我断开连接时,我需要ping IP地址,然后运行“arp-a”来显示更新的信息。我想知道是否有一种方法可以保持此更新,可能不是“实时”,而是每1-5分钟使用C#。有什么好方法可以ping an IP范围(可能不是使用+ping)?我想我会这样做以保持“ARP-A”表的更新,这需要很多资源吗?这可能会有所帮助。如果要同时ping多个IP,System.Net.NetworkInformation.SendAsync方法之一确实可以节省时间。我看到的唯一替代方案是创建相同数量的线程(最好使用线程池或BackgroundWorker),并在每个单独的线程中同步ping每个单独的IP。谢谢,它工作得非常好,现在我遇到了另一个问题,我在ping iPhone时有大量ms号码,但我找到了这个解决方案:。当我的手机被屏蔽时(当屏幕在一段时间不用后变黑),我想我不能再ping iPhone了,你知道吗?谢谢你有用的回答。