有没有办法从没有 arp 的 Synology Cubestation 确定某个 MAC 地址是否在本地网络上?

有没有办法从没有 arp 的 Synology Cubestation 确定某个 MAC 地址是否在本地网络上?

我遇到了一个奇怪的问题,我试图确定某个 MAC 地址(我的 xbox 360)是否在网络上(即

问题是我通过 Synology Cubestation 执行此操作,它是基于 powerpc 的 NAS,带有嵌入式 Linux。

我可以使用各种命令,包括 ping 和 nslookup,但没有最有用的 arp 命令。

我不介意执行诸如从 192.168.1.1 到 192.168.1.255 的所有内容之类的操作,但这不会返回 mac 地址。不幸的是,我对 Linuxy 网络命令的了解有限,因此欢迎提出任何建议。

PS 如果有其他方法可以确定我的 xbox 是否在网络上,也欢迎提出这些建议。

答案1

首先,几个假设:

  • 你想通过编程来实现,而不是看 LED
  • 你不知道 xbox 的当前 IP
  • 您知道 dhcp 提供 IP 的子网

列出系统当前已知的 IP/MAC: cat /proc/net/arp

因此,您必须 ping 子网中的每个 IP,然后检查 arp 表,并确保 ping 通该 IP。

就像是:

ping -c 1 `cat arp | grep "00:12:34:45:78:AB" | cut -d" " -f 1` >/dev/null; echo $?

如果 Xbox 正在响应 ping,则输出 0,否则输出 1。根据您要执行的操作,您可以对 $? 或其他内容执行一些 if 操作。

答案2

如果 /proc/net/arp 存在并且您有 grep/awk 可用:

mac="00:0e:a6:b6:cd:5b"
ip=$(cat /proc/net/arp | grep $mac | awk '{print$1}')
if [ "$ip" != "" ]; then
echo "It's On"
fi

答案3

你不能只检查 xBox 360 内部的网络设置吗?

家庭网络简介

在 Xbox 360 控制台上,按照以下步骤操作:

  1. 选择系统设置。
  2. 选择网络设置。
  3. 选择配置网络。

这可能会告诉您 xBox 360 机器的 IP 地址和 MAC 地址。

答案4

您确定您的 CubeStation 上没有安装“arp”吗?这可能是路径问题吗?

假设您正在登录到 CubeStation 上的 shell,请尝试:

/sbin/arp

或者

/usr/sbin/arp

相关内容