Итак, если я хотел подключиться через SSH ко всем устройствам в сети, используя таблицу ARP, чтобы точно знать, где подключиться, что мне делать?Bash - Табличка ARP для велосипедного прохода и хранения IP-адресов в переменной
код будет выглядеть примерно так:
#!/bin/bash
for a in $([ARP Table here?])
do
ssh [email protected]$a true
echo "Connected to $a"
done
Я не уверен в том, как хранить Dinamic IP-адреса в переменной. Также я не уверен в том, что я могу использовать эту переменную впоследствии для подключения через ssh, потому что IP не будет int, а скорее является строкой.
EDIT: После того, как Андрей сделал мне заметить, что не каждое устройство в моей сети может быть в моей ARP таблицы, я задаюсь вопросом:
Является ли это лучше начинать от 0 до максимального значения текущей маски сети или поиск в таблице ARP?
Вот два случая:
#!/bin/bash
for a in $(seq 255)
do
ssh [email protected]$a true
echo "Connected to 172.18.10.$a"
done
или
#!/bin/bash
for a in $([ARP Table here?])
do
ssh [email protected]$a true
echo "Connected to $a"
done
Возможно, это не очень хороший подход. Нет гарантии, что какое-либо данное локальное устройство действительно будет в вашем кэше ARP в любой момент времени. –
@AndrewMedico Итак, вы говорите, что в сети могут быть какие-то деления, а не в моей таблице ARP. Затем я отредактирую свой вопрос. –
Кроме того, «все устройства» не говорят нам достаточно. Какие устройства? Cisco IOS? Junos? FreeBSD или Linux? Если вы говорите о кэше arp на конкретном хосте, вы можете проанализировать вывод 'arp -an' в большинстве операционных систем. Но послушайте Андрея, он говорит правду; ваш кеш arp является эфемерным и зависит от активности сети. ARP - это инструмент, позволяющий вашим устройствам говорить Ethernet друг с другом, это не стратегия управления сетью. – ghoti