Как найти имя компьютера в локальной сети по IP-адресу?

54

Моя сеть включает в себя машины под управлением Linux и другие под управлением Windows. И моя машина работает под управлением Linux.

Ислам Хасан
источник
2
Вопрос немного неясен, что привело к различным - и хорошим - ответам ниже. Хотите найти DNS-имя хоста? Хотите найти имя WINS? Хотите найти в сети все найденные хосты? На все эти вопросы даны ответы, но конкретный желаемый ответ неизвестен.
Мэй

Ответы:

35

Введите в терминале

arp -a

Он покажет все имена хостов в локальной сети, будь то Linux или Windows.

Кетан Патель
источник
14
Это ничего не показывает в моей локальной сети, которая имеет более 30 машин Linux ...
Cerin
@Cerin Ты сам на машине с Linux?
Шашанк Савант
1
В Ubuntu 14.04 это говорит: «? (192.168.1.2) в 00: 22: 6b: f2: 33: b3 [ether] на wlan0», давая мне только информацию о моем маршрутизаторе (мой ноутбук подключен к нему через Wi-Fi, например, около 10 других устройств атм). Глядя на man arp, он также говорит: «arp - манипулирует системным ARP-кэшем». Как этот инструмент должен решить исходный вопрос?
Герлос
5
То же самое здесь, в Ubuntu 14.04, здесь просто перечислено несколько слов? (192.168.55.147) at ac:3a:7a:a4:01:d4 [ether] on eth0
Элайджа Линн
2
Тоже самое. Я могу получить доступ к локальному хосту только по имени хоста, кажется, ничто иное не рекламирует его имя хоста, даже машины с Linux, которые я настроил сам.
unfa
19

Введите в терминале

sudo aptitude install nmap
nmap -sP xxx.xxx.xxx.xxx

Это даст вам:

Starting Nmap 5.21 ( http://nmap.org ) at 2012-11-03 19:08 CET
Nmap scan report for HOST.DOMAIN (xxx.xxx.xxx.xxx)
Host is up (0.00052s latency).
MAC Address: YY:YY:YY:YY:YY:YY (Manufactor)
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

Где HOST.DOMAIN - это DNS-имя машины.

Germar
источник
10
Здесь показаны все активные IP-адреса, но показаны только домены для компьютеров, для которых явно настроен настраиваемый домен на моем локальном сервере Bind. Он не показывает никаких локальных имен хостов, что, я думаю, то, что ОП пытается достичь.
Cerin
этот ответ очень быстрый.
activedecay
4
-sP может быть изменено на -sn в зависимости от вашей версии nmap. Из руководства по nmap 7.12: -sn (без сканирования портов) В предыдущих выпусках Nmap -sn назывался -sP.
Lemmings19
Подобно arpкоманде, я считаю , что этот ответ работает , только если у вас есть локальный DHCP - сервер и DNS - сервера / прокси , которые взаимодействуют друг с другом, так что имена хостов , записанные с DHCP аренды может быть разрешен (или обратный решена, в этом случае через DNS.
Доктор J
9

Что если вы попробуете это:

Вы можете запустить его в Windows

nbtstat -A xxx.xxx.xxx.xxx (where x is the ip address)

на Ubuntu вы можете установить nbtscan. Вы можете найти больше информации здесь: http://www.unixwiz.net/tools/nbtscan.html

Надеюсь, это поможет

Brett
источник
Большое спасибо, но кажется, что nbtscan обнаруживает только машины с Windows. У меня 2 машины под управлением Windows и еще 2 под управлением Linux. Он обнаруживает только две запущенные Windows.
Ислам Хасан
2
вы можете попробовать nmblookup? это должно быть установлено уже на Ubuntu
Бретт
Извините, я прочитал учебник, но не смог понять, как написать команду, которая решает мою проблему. Я не вижу вариантов, принимающих IP в качестве входных данных. Можете ли вы написать команду для меня, пожалуйста?
Ислам Хасан
6
попробуйте nmblookup -A xxx.xxx.xx, где x - это ip-адрес машины. Поэтому я бы выполнил nmblookup -A 192.168.1.6, и он вернул бы имя моей машины. Вам нужно будет сделать это для каждой машины.
Бретт
1
@Brett: (+1) вы должны преобразовать свой комментарий в ответ, поскольку это единственный метод, который работал для меня (как для окон, так и для Linux). Спасибо
Лепе
7

Обратный просмотр имени Netbios может выполнить то, что вы хотите больше, чем «имя хоста», которое является функцией DNS и tcp / ip. nmblookup с параметром -A возвращает имена устройств, а также MAC-адрес. Попробуйте что-то вроде этого:

nmblookup -A 192.168.1.2
Фрер
источник
Это ответ, который работал для меня
Хамфри
Это ответ.
Кампа
3

Если в вашей сети работает DHCP-сервер, обычно на модеме / маршрутизаторе, скорее всего, у вас будет возможность увидеть назначенные DHCP-адреса - часто с помощью веб-страницы, и в этом списке часто отображаются имена компьютеров рядом с выделенными IP-адресами. ,

Джаз
источник
2

Я бы просто использовал

nslookup xxx.xxx.xxx.xxx

он покажет мне имя хоста (обычно имя компьютера)

Chester
источник
4
Это меня просто достает** server can't find xxx.xxx.xxx.xxx.in-addr.arpa.: NXDOMAIN
Cerin
у меня работает :)
vk.edward.li
2
nslookup выполняет поиск DNS, поэтому для его работы необходимо зарегистрировать хосты в DNS. Если у вас есть обычная сеть Windows, в частном диапазоне IP, без настроенного ActiveDirectory, это не будет работать. Имена NetBios и DNS-имена - разные звери.
bogdan.mustiata
1

Насколько мне известно, не существует утилиты для преобразования IP-адреса в имя NetBIOS. Я полагаю, что какая-то сетевая программа или программа тестирования на проникновение может дать вам такую ​​информацию. Однако все компьютеры должны быть в одном домене и подсети.

Xernicus
источник
Не могли бы вы назвать программу, пожалуйста?
Ислам Хасан
1
ОП хочет противоположного. например, IP-> hostname
Cerin
Я знаю, что это старый ... и OP использует Linux, а не Windows ... но в Windows вы можете запустить, nbtstat -A <IP Address>чтобы получить имя NetBIOS только от IP. Это работает в подсетях, и нет необходимости находиться в одном домене. Кроме того, бег nbtstat -a <NetBIOS Name>будет делать обратное. Надеюсь, это поможет ...
Джон Гомер