Я ищу команду linux, которую можно использовать для поиска IP-адресов разных систем, подключенных к одной и той же сети. Все системы работают под управлением Fedora 14.
Заранее спасибо..
Я ищу команду linux, которую можно использовать для поиска IP-адресов разных систем, подключенных к одной и той же сети. Все системы работают под управлением Fedora 14.
Заранее спасибо..
Nmap, безусловно, команда, которую вы ищете. Ты можешь сделать:
nmap -sn 192.168.10.0/24
сканировать все в сети 192.168.10.0/24. Чтобы выполнить более глубокое сканирование конкретной машины, вы можете попробовать:
nmap -A -T4 192.168.10.12
например. Примечание: вам понадобится sudo или root, чтобы включить некоторые функции сканирования, но не для базового пинга.
Я не думаю, что есть полностью общий способ сделать это. Однако есть несколько вещей, которые вы можете попробовать.
Один из них - запустить arp -a
. Это напечатает текущее состояние кэша ARP , который содержит IP-адреса и MAC-адреса каждого локального компьютера, с которым ваш компьютер недавно связывался. Это информация, которая вам нужна, но только для подмножества хостов в сети.
Другим является использование многоадресной рассылки. На ваших машинах работает Avahi? Если это так, вы можете делать mDNS-запросы к ним; попробуйте запустить avahi-browse -at
.
Первоначально я думал, что побочным эффектом этого будет то, что ваша машина связывается с машинами, рекламирующими ресурсы mDNS, которые вносят свои данные в кэш ARP, который вы затем можете перечислить, как указано выше. Однако, похоже, это не так.
Однако вы можете запросить разрешение объявленных сервисов, которое получает IP-адреса компьютеров. Затем вы можете извлечь их из avahi-browse
. Вот так:
avahi-browse -atr | egrep -o '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | sort -u
Это позволит найти машины, рекламирующие сервисы только через mDNS, но есть большая вероятность, что это все ваши машины; почему-то современные системы Linux рекламируют сервис Workstation
.
Комбинируйте nmap и arp для достижения наилучших результатов, особенно если задействованы iptables:
(это для андроида, поэтому мало что поменяю)
echo "running LIST scan..."
su -c "/data/data/jackpal.androidterm/nmap/nmap -sL 10.0.7.240-254 >/dev/null 2>&1"
echo "running PING scan..."
su -c "/data/data/jackpal.androidterm/nmap/nmap -sP 10.0.7.240-254 >/dev/null 2>&1"
echo "------------------------------"
arp|grep ether|awk '{print $2,$4}'
Я не знал бы о такой команде, но вы могли бы использовать часть программного обеспечения. Я использую Angry IP-сканер в Windows, и я нашел версию для Linux.