Как получить имя хоста другого ПК в сети, используя IP-адрес?(Пакетный файл) - PullRequest
0 голосов
/ 08 мая 2019

Нужно получить имя хоста другого компьютера в моей сети и назначить его переменной в пакетном файле.

Я хочу использовать что-то похожее на приведенные ниже решения:

FOR /F "usebackq" %%i IN (`hostname`) DO SET MYVAR=%%i
  • Это решение возвращает имя ПК, но также .home в конце "PCNAME.home"

for /f "tokens=2 delims=: " %%i in ('nslookup 192.168.178.1^|find "Name:"') do set name=%%i

1 Ответ

0 голосов
/ 09 мая 2019
SET "MYVAR="
for /f "tokens=2" %%i in ('ping -n 1 -a 192.168.178.1') do if not defined MYVAR SET "MYVAR=%%i"

Приведенное выше решение должно работать для IP-адресов из следующих блоков IP-адресов ( диапазон частных IP-адресов ):

  • 10.0.0.0 до 10.255.255.255
  • 172.16.0.0 до 172.31.255.255
  • 192.168.0.0 до 192.168.255.255

Редактировать . Возвращает PCNAME.home .. есть ли способ для результата быть просто PCNAME без ".home" в конце?
В следующем фрагменте кода рассматривается даже тот случай, когда ping /a не разрешает IP-адрес по имени хоста по некоторым причинам.

SET "MYIP=192.168.178.1"
SET "MYVAR="
for /f "tokens=2" %%i in ('ping -n 1 -a %MYIP%') do if not defined MYVAR SET "MYVAR=%%i"
if NOT "%MYIP%"=="%MYVAR%" for /f "delims=." %%i in ("%MYVAR%") do SET "MYVAR=%%i"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...