У меня немного странная проблема, я пытаюсь определить, находится ли определенный MAC-адрес (мой xbox 360) в сети (т.е. включен)
Проблема в том, что я делаю это с помощью Synology Cubestation, который представляет собой NAS на базе powerpc со встроенным Linux.
У меня есть доступ к множеству команд, включая ping и nslookup, но у меня нет таких вещей, как arp, которые были бы наиболее полезны.
Я не против сделать что-то вроде пинга всего от 192.168.1.1 до 192.168.1.255, но это не возвращает MAC-адрес. К сожалению, мои знания сетевых команд Linuxy ограничены, поэтому любые предложения приветствуются.
P.S. Если есть другой способ определить, подключен ли мой Xbox к сети, мы также приветствуем эти предложения.
Во-первых, несколько предположений:
Чтобы перечислить IP / MAC-адреса, известные системе в настоящее время: cat /proc/net/arp
Таким образом, вам придется пинговать каждый IP-адрес из подсети, затем проверять таблицу arp и обязательно проверять IP-адрес.
Что-то вроде:
ping -c 1 `cat arp | grep "00:12:34:45:78:AB" | cut -d" " -f 1` >/dev/null; echo $?
Будет выводить 0, если Xbox отвечает на пинги, и 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
Вы уверены, что на вашем CubeStation не установлен arp? Может быть, это проблема пути?
Предполагая, что вы входите в оболочку CubeStation, попробуйте:
/sbin/arp
Или
/usr/sbin/arp
Разве вы не можете просто проверить настройки сети внутри xBox 360?
На консоли Xbox 360 выполните следующие действия:
- Выберите Системные настройки.
- Выберите Параметры сети.
- Выберите Настроить сеть.
Скорее всего, это сообщит вам IP-адрес и MAC-адрес компьютера xBox 360.