有没有一种方法可以确定某个MAC地址是否来自Synology Cubestation的本地networking,而该networking没有arp?

我有一个奇怪的问题,我试图确定一个特定的MAC地址(我的Xbox 360)是否在networking上(即上)

问题是我正在从我的Synology Cubestation这是一个基于powerpc的embedded式Linux NAS。

我可以访问各种命令,包括ping和nslookup,但是我没有像arp这样最有用的东西。

我不介意做类似于ping 192.168.1.1到192.168.1.255之类的东西,但是不会返回mac地址。 不幸的是我对Linuxynetworking命令的知识是有限的,所以欢迎任何build议。

PS如果有另一种方式来确定我的Xbox是否在networking上,这些build议也是受欢迎的。

首先,几个假设:

  • 你想以编程方式做,而不是看着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。 根据你想要做什么,你可以做一些如果$? 或者其他的东西。

如果/ 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 

你不能只检查XBox 360内的networking设置?

介绍家庭networking

在您的Xbox 360控制台上,请按照下列步骤操作:

  1. select系统设置。
  2. selectnetworking设置。
  3. selectconfigurationnetworking。

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

你确定'arp'没有安装在你的CubeStation上吗? 可能这是一个path问题?

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

 /sbin/arp 

要么

 /usr/sbin/arp