Как по ip адресу узнать имя компьютера: Страница не найдена

windows — Получить имя компьютера через IP адрес


Вопрос задан


Изменён
3 года 3 месяца назад


Просмотрен
310 раз

set WMI = GetObject("winmgmts:\\" & ip & "\root\cimv2")
if Err.Number <> 0 then
    msgbox Err.Description
end if
set items = WMI.ExecQuery("SELECT * FROM Win32_ComputerSystem")
for each item in items
    msgbox item.Name
next

Запуск скрипта от имени пользователя получает имя хоста, а запуск от имени системы возвращает ошибку

Разрешение отклонено 70

Каким ещё способом можно получить имя удалённого компьютера?

  • windows
  • vbscript
  • wmi






2

Поскольку используется AD, то я предлагаю использовать источником для создания базы данных рабочих станций журнал аудита контроллера домена.
Вот пример сведений из записи (EventID=4624 / вход в систему), которая возникает при загрузке рабочей станции домена и её попытке связаться с контроллером доменом (на базе W2K8).

    Имя учетной записи:     COMPUTER0$
    Домен учетной записи:       DOMAIN-A
    Код входа:      0x316d2639
    GUID входа:     {47f539ad-1ea8-a704-b23f-c5f7d3bcf80d}
Сведения о процессе:
    Идентификатор процесса:     0x0
    Имя процесса:       -
Сведения о сети:
    Имя рабочей станции:    
    Сетевой адрес источника:    192.168.1.170

Как видно из текста, доступно имя станции (с добавленным символом $ в конце).
И самое необходимое — IP-адрес узла, который общался с контроллером домена.

Дальше дело техники:

  1. Использовать техническую учетную запись с правами локального администратора контроллера домена, чтобы прочесть записи с журнала «Безопасность»

  2. Распарсить XML-данные записей журнала.

  3. Задать соответствие имени и IP, и занести это в базу.

P.S. Альтернативным решением было бы поднять службу WINS, которая работает в автоматическом режиме, практически не требуя настроек. Но, если мне не изменяет память, данный сервис имеет крупные уязвимости, вплоть до RTE.

Либо все же правильно настроить службу DNS. Так чтобы обратные имена корректно регистрировались в базе DNS.

В Active Directory добавил члена группы в Администраторы домена, но он имеет доступ к удалённому рабочему столу. Скрипт запускается от системы, подключение происходит от пользователя.

set locator = CreateObject("WbemScripting.SWbemLocator") 
set WMI = locator.ConnectServer(ip, "root\cimv2", "User", "Password")

Пока решил проблему таким способом, но буду рад любым другим вариантам.







Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации


Почта

Необходима, но никому не показывается





Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки


Найти hostname из IP Linux

Имена или ярлыки полезны, поскольку они позволяют нам отличить одну вещь или одного человека от другого. Даже имя человека, которое может не быть уникальным в глобальном масштабе, содержит набор символов, которые позволяют человеку отличаться от другого человека.

Точно так же компьютеры поддерживают метки или имена, которые помогают придать им уникальную идентичность в сети. Вот здесь и появляется имя хоста. Имя хоста — это набор буквенно-цифровых символов, уникальных для компьютерной сети, позволяющий устройствам связываться друг с другом.

Как правило, базовая технология, которая идентифицирует компьютер или устройство в сети, представляет собой набор чисел, известных как IP-адреса. Затем они сопоставляются с определенным именем, преобразованным в IP-адрес машины.

Однако в этом руководстве я покажу вам различные способы, которые вы можете использовать для получения имени хоста, связанного с определенным IP-адресом. Методы, обсуждаемые в этом руководстве, будут работать почти во всех Linux и Unix-подобных системах.

Разобравшись с этим, давайте погрузимся.

Содержание

  1. Метод 1: Ping
  2. Метод 2: команда хоста
  3. Метод 3: Использование Dig
  4. Метод 4: Nslookup
  5. Заключение

Метод 1: Ping

Самый простой способ получить имя хоста с IP-адреса — использовать команду ping. Ping — это простая, но мощная утилита командной строки, которая использует пакеты ECHO для связи с хостом.

ПРИМЕЧАНИЕ. Следующая команда работает только на компьютерах с Windows. Для Linux проверьте следующий метод.

Чтобы получить имя хоста с IP-адреса с помощью команды ping, используйте команду ниже:

$ ping -a 172.67.209.252

Вот результат выполнения вышеуказанной команды:

Приведенная выше команда не всегда надежна; это часто работает только в том случае, если имя хоста доступно в файле hosts.

Метод 2: команда хоста

Второй и распространенный метод получения имени хоста из IP-адреса в Linux — это команда host. Этот простой инструмент является частью пакета dnsutil.

Для установки пакета используйте команды:

Дистрибутивы на основе Ubuntu / Debian

$ sudo apt-get install dnsutils -y

REHL / CentOS

$ sudo yum install dnsutils

Fedora

$ sudo dnf install dnsutils

Arch

$ sudo pacman -S dnsutils

После установки инструмента вы можете запустить приведенную ниже команду, чтобы получить имя хоста IP-адреса.

$ host <ip>

Ниже приведен пример вывода:

[fedora@fedora34 ~]$ host 216.58.223.78
78.223.58.216.in-addr.arpa domain name pointer mba01s07-in-f14.1e100.net.

ПРИМЕЧАНИЕ. Для использования команды host требуется, чтобы система была зарегистрирована на DNS-сервере, таком как Cloudflare или Google Public DNS, или в записи в файле хоста. В зависимости от DNS-сервера, с которым сконфигурирована система, результат может отличаться или вообще отсутствовать.

Если вы используете Fedora, убедитесь, что настройки DNS сохранены перед перезагрузкой, потому что Network Manager часто перезаписывает их.

Метод 3: Использование Dig

Следующий метод, который вы можете попробовать, — это использовать dig. Dig — это утилита командной строки, которая полезна при выполнении DNS-запросов и обратного просмотра. Это мощный инструмент, у которого есть набор функций, помимо поиска имени хоста.

После того, как вы установили dig в своей системе, используйте команду:

$ dig -x <ip>

Также полезно отметить, что на сервере должен быть включен обратный поиск DNS; в противном случае вы не получите имя хоста сервера.

Метод 4: Nslookup

Гораздо более простой и распространенный способ найти имя хоста по IP-адресу — использовать nslookup. Nslookup — это утилита командной строки, похожая на dig, но позволяющая пользователям запрашивать у DNS имена хостов и сопоставления IP-адресов.

Чтобы запросить имя хоста с помощью nslookup, используйте команду как:

$ nslookup <ip>

Пример такой, как показано ниже:

[fedora@fedora34 ~]$ nslookup 216.58.223.110
110.223.58.216.in-addr.arpa name = mba01s08-in-f14.1e100.net.

Заключение

В этом руководстве мы проиллюстрировали различные способы получения имени хоста с IP-адреса как на машинах Linux, так и на Windows.

windows — Разрешить имя хоста по IP-адресу

Я ищу инструмент командной строки, который получает IP-адрес и возвращает имя хоста для Windows.

  • окна
  • сеть
  • интерфейс командной строки

1

Команда, которую вы ищете, называется nslookup , отлично работает для обратного просмотра IFF кто-то настроил файл обратной зоны, что они не всегда делают.

0

, если все вышеперечисленное не помогло, и вы специально ищете машину с Windows, вы можете использовать

 nbtstat -a 192.168.1.50
 

Возвращаемые данные будут всеми записями NetBIOS, которые есть на машине. Запись с типом записи <20h> обычно будет именем машины.

7

Для многих IP-адресов вы можете просто использовать ping -a, например

 пинг-а 209. 85.229.106
 

вернет

 Pinging ww-in-f106.google.com [209.85.229.106] с 32 байтами данных:
Ответ от 209.85.229.106...........
 

4

Если вы используете команду nslookup с IP-адресом в качестве первого аргумента, будет возвращена запись PTR (обратная запись), если она существует. Например:

 nslookup 192.168.1.50
 

(проверено под Windows 10 x64)

9>НУЛ

  • Я использовал FINDSTR /C для извлечения значения после четырех пробелов. Поскольку четыре пробела, по-видимому, существуют только для записи Name: , это, по-видимому, единственный способ заставить ее работать в других локализованных системах.
  • Использовать цифр. Порт Windows доступен из ISC здесь (ищите ссылку на zip-файл в поле для немедленной загрузки). Вот их справочная страница для dig .

    Замечание Уорда о том, что записи обратного просмотра часто не создаются, во многом верно. Обратный поиск часто терпит неудачу, потому что многие администраторы не утруждают себя созданием записей ptr.

    psexec \192.168.0.65 имя хоста

    DMHD006
    имя хоста завершилось на 192.168.0.65 с кодом ошибки 0.

    1

    , если вы хотите узнать имя хоста в той же сети, используйте другую машину с той же сетью и используйте команду ниже:
    Ping -an ip address

    1

    windows — Получить IP-адреса и имена компьютеров в одной сети

    спросил

    Изменено
    2 года, 5 месяцев назад

    Просмотрено
    372 тысячи раз

    Какую команду можно использовать для получения IP-адреса и имен компьютеров, находящихся в одной сети?

    Я использую Windows

    • окна
    • сеть
    • IP-адрес

    4

     нмап-сн 192. 168.1.0/24
     

    Введите в него номер вашей сети. Он проверит вашу сеть с помощью ping-запросов и сообщит об обратных DNS-серверах работающих машин. Не найдет неисправных машин.

     C:> для /L %N в (1,1,254) сделать @nslookup 192.168.0.%N >> имена.txt
     

    Это выполнит обратный поиск каждого IP-адреса в вашей подсети.

    4

    Попробуйте использовать этот простой код командной строки.
    Чтобы получить всю сеть ips arp -a
    чтобы найти, откуда приходит IP-адрес tracert "ip"

    1

    Использование Powershell — dmitrysotnikov написал хорошую функцию, это из:
    http://dmitrysotnikov.wordpress.com/2008/03/07/get-computer-by-ip-address/

    нуждается в некоторой обработке ошибок для более чистых ответов «время ожидания» и «хост не найден».

     функция Get-ComputerNameByIP {
    параметр(
    $IP-адрес = $нуль
    )
    НАЧИНАТЬ {
    }
    ПРОЦЕСС {
    если ($IP-адрес -и $_) {
    throw ‘Пожалуйста, используйте либо конвейер, либо входной параметр’
    ломать
    } иначе ($IP-адрес) {
    ([System. Net.Dns]::GetHostbyAddress($IPAddress))
    } иначе ($_) {
    ловушка [Исключение] {
    предупреждение о записи $_.Exception.Message
    Продолжать;
    }
    [System.Net.Dns]::GetHostbyAddress($_)
    } еще {
    $IPAddress = Read-Host «Пожалуйста, укажите IP-адрес»
    [System.Net.Dns]::GetHostbyAddress($IPAddress)
    }
    }
    КОНЕЦ {
    }
    }
    #Используйте здесь любой диапазон
    1..255 | ForEach-Object {"10.20.100.$_"} | Get-ComputerNameByIP
     

    Если вы хотите выбрать «обычный», nmap подойдет как нельзя лучше.

    Если вы хотите стать «неизвестным», Doxpara Paketto Keiretsu сделает это со Сканрандом и друзьями. Не совсем «официальные» инструменты, но, безусловно, полезные для поиска узлов, которые иначе не видны. И я упоминал, что это быстро ?

    Если вы не против установить это небольшое приложение: Advanced IP Scanner Radmin (бесплатное ПО для Windows)

    Предоставляет вам хосты локальной сети:

    • IP
    • Имя NetBIOS
    • Время проверки связи
    • MAC-адрес
    • Удаленное отключение (только для Windows, я нажимаю) и другие

    Advanced IP Scanner — это быстрый, надежный и простой в использовании IP-сканер для Windows.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *