Подключитесь по протоколу SSH к удаленному хосту (маршрутизаторы серии Edgemarc 4200 или 4500) и извлеките данные ARP.

Подключитесь по протоколу SSH к удаленному хосту (маршрутизаторы серии Edgemarc 4200 или 4500) и извлеките данные ARP.

Я пытаюсь придумать способ сделать это уже несколько дней, но пока ничего не придумал. В идеале вот что я хочу сделать:

На машине с Windows XP мне нужно открыть SSH-соединение с удаленным хостом, отправить команду arp и извлечь текстовые результаты команды для использования на клиенте. Мне нужно будет проанализировать эти данные и, желательно, создать двумерный массив IP-адресов и MAC-адресов. Не будет общих ключей, все это делается с именем пользователя и паролем, которые всегда будут разными, их нужно будет вводить в команду через переменные, которые будут извлечены из базы данных с помощью скрипта autoit на основе WAN-IP удаленного хоста.

Теперь фактический разбор данных и создание массива будут простыми, если я смогу просто получить текст таблицы arp. Есть ли способ подключиться по ssh к удаленному хосту, выполнить команду и вернуть данные из этой команды клиенту в пакетном скрипте или скрипте perl (это нормально, если он записывает текст в файл, я могу прочитать его из файла позже, мне просто нужно, чтобы он попал к клиенту)?

решение1

Использование PuTTY plink:

plink <server> arp

Если это не сработает:

echo arp | plink <server>

Если система работает под управлением Linux и ipкоманда доступна, используйте ее. Формат проще для анализа:

plink <server> /sbin/ip -o -f inet neigh

plink <server> /sbin/ip -o -f inet6 neigh

решение2

Используя PuTTY, вы можете указать имя пользователя и пароль следующим образом:

  • putty -pw пароль имя_пользователя@имя_хоста

Кроме того, ключ командной строки «-m» также позволит вам указать текстовый файл, из которого будут считываться команды для выполнения на сервере после подключения.

PuTTY можно скачать здесь:

  PuTTY (бесплатно и с открытым исходным кодом)
  http://www.chiark.greenend.org.uk/~sgtatham/putty/

Связанный контент