Ответы:
Как много вы знаете о рассматриваемой локальной сети? Я предполагаю, что вы ничего не знаете, просто подключен кабель или подключен к Wi-Fi.
-sP
в случае, если некоторые хосты не отвечают на ping (ознакомьтесь с документацией ). Важно, чтобы nmap работал, только если ваши сетевые настройки и маршруты правильные.Некоторым (большинству?) Системным администраторам не нравятся некоторые из перечисленных выше методов, поэтому убедитесь, что это разрешено (например, это ваша сеть). Также обратите внимание, что ваш собственный брандмауэр может предотвратить некоторые из этих методов (даже получение IP с DHCP), поэтому сначала проверьте ваши правила.
Nmap
Вот как можно выполнить базовое обнаружение хоста с помощью nmap . Как я уже сказал, ваша конфигурация сети должна быть правильной, когда вы пытаетесь это сделать. Допустим, вы 192.168.0.50 и находитесь в подсети / 24. Ваш MAC-адрес разрешен для подключения и т. Д. Мне нравится запускать Wireshark, чтобы посмотреть, что я делаю.
Сначала я хотел бы попробовать сканирование списка, которое только пытается разрешить записи PTR в DNS для указанных IP-адресов. Он ничего не посылает хостам, поэтому нет гарантии, что он действительно подключен или включен, но есть хороший шанс. Этот режим, очевидно, нуждается в DNS-сервере, который готов с вами общаться.
nmap -vvv -sn -sL 192.168.1.0/16
Это может ничего не найти, или это может сказать вам, что каждый IP-адрес не работает.
Тогда я обычно иду на сканирование ARP. Он отправляет запросы ARP (вы видите их как "Who has <target IP>? Tell <your IP>"
в wireshark). Это довольно надежно, поскольку никто не фильтрует и не подделывает ARP. Основным недостатком является то, что он работает только в вашей подсети.
nmap -vvv -sn -PR 192.168.1.0/24
Если вы хотите сканировать что-то за маршрутизаторами или брандмауэрами, используйте сканирование SYN и ACK. SYN запускает TCP-соединение, и вы либо получаете RST, либо SYNACK в ответ. В любом случае хозяин работает. Вы можете запретить ICMP-связь или что-то в этом роде, если есть брандмауэр. Большую часть времени, если брандмауэр фильтровал ваши пакеты, вы ничего не получите. Некоторые типы брандмауэров фильтруют только пакеты TCP SYN и пропускают все остальные пакеты TCP. Вот почему сканирование ACK полезно. Вы получите RST в ответ, если хост включен. Поскольку вы не знаете, какой брандмауэр установлен, попробуйте оба варианта.
nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24
Тогда, конечно, вы можете использовать сканирование на основе ICMP с -PE -PP -PM.
Другой интересный метод - это -PO с несуществующим номером протокола. Часто в брандмауэрах рассматриваются только TCP и UDP, и никто не проверяет, что происходит, когда вы пытаетесь использовать неизвестный протокол. Вы получаете протокол ICMP, недоступный, если хост работает.
nmap -vvv -sn -PO160 10.1.2.0/24
Вы также можете указать nmap пропустить обнаружение хоста (-Pn) и выполнить сканирование портов на каждом хосте. Это очень медленно, но вы можете найти другие хосты, которые по какой-то причине пропустили обнаружение хостов.
Мне нравится ip neigh
команда, которая идет с IpRoute2.
ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
Тем не менее, я думаю, что он работает только с arp
-able узлами.
man ip
показывает, что делает сосед или сосед.
Установите nmap и запустите nmap -sP <mynetwork>
.
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
.
nmap -sP 192.168.0.*
и он возвратил список вывода формы:Nmap scan report for justin-desktop2 (192.168.0.61)
Host is up (0.00056s latency).
Host 192.168.2.23 is up (0.0088s latency).
.
Для обоих ответов: НЕТ Nmap требуется / НЕТ sudo требуется .
$ arp
Опираясь на ксенотеррациды, ответьте ip neigh
и hosts
:
#!/usr/bin/env python
"""List all hosts with their IP adress of the current network."""
import os
out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
ip = line.split(' ')[0]
h = os.popen('host {}'.format(ip)).read()
hostname = h.split(' ')[-1]
print("{:>3}: {} ({})".format(i, hostname.strip(), ip))
Скачать через
wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py