Как я могу пинговать (из командной строки) принтер, не зная его IP. Как я могу найти IP-адрес принтера в командной строке?
2 ответа
Если у вас есть принтер, подключенный к ПК с Windows, существуют различные команды powershell или WMI:
get-wmiobject win32_printer | select name
get-wmiobject win32_tcpipprinterport | select hostaddress
В зависимости от вашего принтера и драйверов, у него может не быть IP-адреса, и вам придется запрашивать WMI.
wmic printer get DriverName, Name, Portname
Если это лазерный сетевой принтер HP, возможно, вы подключаетесь к порту 9100, и netstat покажет активные сетевые подключения из powershell:
netstat -an | grep 9100
Вы можете запустить пакетный файл, чтобы пройтись по адресам, пропинговать каждый в течение полсекунды и двигаться дальше. Это должно работать нормально, если у вас есть только одна или несколько подсетей. Если ваша сеть очень сложная, это может занять очень много времени. Вот пример сценария:
setlocal enabledelayedexpansion
set /a counter=0
:start
set /a counter+=1
ping -n 1 192.168.0.!counter! > devices.txt
if %counter%=255 goto finish
goto start
:finish