以编程方式刷新ARP表

以编程方式刷新ARP表,第1张

概述以编程方式刷新ARP表

我一直在阅读有关在我的手机上以编程方式连接到我的WIFI热点的设备列表的主题。

我发现一个有用的post在堆栈溢出与下面的代码和评论说

这是不正确的,因为当设备断开连接时,ARP表不一定会刷新。 有人说,你可以简单地Ping通表中的所有设备,看看哪些IP是活动的,但很可能是一个设备被防火墙不响应ICMP请求,你的Ping将失败。 这个解决scheme,尽pipe是一个工作,不健壮和准确。

我想知道,如果读取proc / net / arp由于刷新问题不够准确,你怎么能强制系统刷新以获得准确的数据?

AndroID AOSP linux服务标准输出

在32位系统升级RAM以提升androID studio?

如何parsing一个没有标准的http响应?

AndroID截图和Screencap权限

未能解决:junit:junit:4.12在ubuntu上的androID studio 1.4

private int countNumMac() { int macCount = 0; BufferedReader br = null; try { br = new BufferedReader(new fileReader("/proc/net/arp")); String line; while ((line = br.readline()) != null) { String[] splitted = line.split(" +"); if (splitted != null && splitted.length >= 4) { // Basic sanity check String mac = splitted[3]; if (mac.matches("..:..:..:..:..:..")) { macCount++; } } } } catch (Exception e) { e.printstacktrace(); } finally { try { br.close(); } catch (IOException e) { e.printstacktrace(); } } if (macCount == 0) return 0; else return macCount-1; //One MAC address entry will be for the host. }

从AndroID Studio启动AVD时出错

libGDX:如何实现一个平滑的瓷砖/网格游戏angular色运动?

java线程和系统线程之间有什么关系?

如何同步内核时间和logcat时间?

在AndroID中发送AT命令使用atinout库

ARP表格不是“在线主机”的分布式列表。 这是我们在这个网络上看到的主机的本地名单。

一旦你意识到这一点,你会注意到,当有人断开连接而不是尝试连接它们时,没有办法删除条目。 只是在后台连续循环,连接到每个主机,并发送一个ICMP数据包(很难从Java脱离,但AndroID确实带有一个Ping命令行工具)。

当然,不会回复Ping的主机将被过滤掉,但取决于可接受的应用程序。

或者,只要让用户尝试连接到任何列出的主机,并优雅地超时对方脱机。 这就是大多数网络应用程序所做的事情,并且是检查主机是否在线的唯一的万无一失的方法。

Ping可能经常执行其arp请求,并且从活动主机获得arp应答,即使icmp回应请求随后被阻塞。 因此,在某些情况下,Ping可以用于填充arp表,以便即使icmp被主动阻塞,也可以检查它是否存在网络存在。

但是,如果这不够准确或者感觉过于粗糙,则可以使用arp协议直接映射网络存在,而不涉及堆栈中较高的协议,这些协议被阻挡的风险较高。

arPing是通常用于手动arp级别 *** 作的linux实用程序(在linux上)。

这里是arPing的源代码。

通过快速搜索,似乎有AndroID的实用工具,执行相应的 *** 作,我也发现源代码似乎是在谷歌AndroID的忙碌箱ArPing 。

这个arPing实用程序可能是可以使用的,当然假设你确保它在你的手机上。 或者,代码变体中的一个或两个可能会激发您如何在自己的代码中以编程方式解决问题。

总结

以上是内存溢出为你收集整理的以编程方式刷新ARP表全部内容,希望文章能够帮你解决以编程方式刷新ARP表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1154040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存