Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Получить имя ПК по IP адресу в локальной сети.

Ответить
Настройки темы
Любой язык - [решено] Получить имя ПК по IP адресу в локальной сети.

Аватара для f0r_ce

Пользователь


Сообщения: 55
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте. Помогите, пожалуйста, найти способ получения имени компьютера в сети по известному IP адресу.
В итоге требуется скопировать имя ПК в буфер обмена. Но для начала, мне бы найти способ извлечь имя ПК по IP адресу.
При выполнении команды ping -a <ip адрес> получается слишком много данных. Не могу придумать как из них выделить только имя ПК и передать в переменную.

Отправлено: 12:48, 19-02-2019

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


А глобальная цель какая?
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:56, 19-02-2019 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
cls
	Set "IP=192.168.125.223"

	chcp 437 >nul
	Set "Key1=Pinging"
	Set "IPname=Not Found"
	FOR /F "usebackq tokens=1,2,3 delims= " %%i IN (`2^>nul Ping  -a -n 1 -4 %IP%`) DO (
		If /I "%Key1%"=="%%i" If /I "[%IP%]"=="%%k" Set "IPname=%%j"
	)
Echo %IPname%
pause

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:04, 19-02-2019 | #3

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата megaloman:
chcp 437 »
А если в имени компьютера есть русские буквы?

-------
Mikhail Zhilin

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:48, 19-02-2019 | #4


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


mwz, Я не встречал в сети имя компьютера с русскими буквами, сам никогда такое не делал, не уверен, что это возможно, как минимум, очень вероятны проблемы при использовании софта. Как вариант
Код: Выделить весь код
@Echo Off
cls
	Set "IP=192.168.100.23"

	Set "IPname=Not Found"
	Set "N="
	FOR /F "usebackq tokens=1,2 delims=<>" %%i IN (`2^>nul nbtstat -a %IP%`) DO (
		If "%%j"=="00" (Call Set "IPname%%N%%=%%i" &Call Set /A N+=1)
	)
	If /I Not "%IPname%"=="Not Found" Set "IPname=%IPname: =%"
Echo %IPname%
pause
Цитата Iska:
А глобальная цель какая? »
Подозреваю, что без этого обойтись вполне можно

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 20-02-2019 в 11:13.


Отправлено: 11:02, 20-02-2019 | #5

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата megaloman:
Я не встречал в сети имя компьютера с русскими буквами, сам никогда такое не делал, не уверен, что это возможно »
Ещё как возможно — почему и спросил.
Из-за чего имели некогда ряд проблем при обслуживании таких компьютеров в сети (досталась по наследству: компы эти не мы ставили).

-------
Mikhail Zhilin


Отправлено: 11:28, 20-02-2019 | #6


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


mwz, Ну, раз пошла такая пьянка, вот еще вариант
Код: Выделить весь код
@Echo Off
cls
	Set "IP=192.168.100.23"

	FOR /F "usebackq delims=" %%i IN (`2^>nul Ping  -a -n 1 -4 %IP%`) DO Call :NameIP %IP% "IPName" %%i &GoTo :Continue
	:Continue
Echo %IPName%
pause
GoTo :Eof

:NameIP
	Set "%~2=Not Found"
	If "%4"=="" GoTo :Eof
	If "%4"=="[%1]" (Set "%~2=%3" &GoTo :Eof)
	Shift /3
	GoTo :NameIP  	
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 22-02-2019 в 15:09.


Отправлено: 11:31, 20-02-2019 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата megaloman:
mwz, Я не встречал в сети имя компьютера с русскими буквами, сам никогда такое не делал, не уверен, что это возможно, как минимум, очень вероятны проблемы при использовании софта. »
Возможно-возможно. Я делал во времена NT4. И проблемы возможны. Не в плане доступа или общения с машиной — в плане того, что не все программисты знают про иные языки, окромя латиницы, и плевали на иные кодовые страницы.

Отправлено: 16:49, 20-02-2019 | #8


Аватара для f0r_ce

Пользователь


Сообщения: 55
Благодарности: 2

Профиль | Отправить PM | Цитировать


Огромное спасибо за код. Глобальная цель: из известного IP получить имя ПК с последующим копированием в буфер обмена. Только загвоздка вышла: имя ПК получается в виде "имя_пк.название_домена" и ни как не получается отрезать лишнее...

Отправлено: 17:38, 21-02-2019 | #9


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


f0r_ce, Если в "имя_пк" нет "."
Код: Выделить весь код
	FOR /F "delims=." %%i IN ("%IPName%") Do Set "IPName=%%i"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:54, 21-02-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Получить имя ПК по IP адресу в локальной сети.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Windows не может получить доступ к ПК по локальной сети oxival Microsoft Windows 10 17 22-05-2018 14:11
[решено] Как определить NetBIOS имя компьютера по IP адресу? SSS Microsoft Windows NT/2000/2003 15 17-05-2017 05:09
Прочее - [решено] При входе на комп по сети по IP-адресу требует ввода логина/пароля __sa__nya Сетевые технологии 12 15-03-2015 19:53
DNS/DHCP - [решено] Машина в локальной сети не может получить IP, присвоенный ей службой DHCP сервера Alex51278 Сетевые технологии 2 30-03-2011 14:08
Компьютер видиться в сети только по IP-адресу Solitude Сетевые технологии 15 26-05-2006 22:25




 
Переход