Я знаю, что есть одна строка команды и ее аргументы, которые могут помочь отобразить все IP-адреса компьютеров (те, которые используются) в локальной сети, и мой компьютер также является клиентом, как один из отображаемых, но я забыл. Что это такое?
Я знаю, что есть одна строка команды и ее аргументы, которые могут помочь отобразить все IP-адреса компьютеров (те, которые используются) в локальной сети, и мой компьютер также является клиентом, как один из отображаемых, но я забыл. Что это такое?
Ответы:
Вы можете выполнить arp -a
команду, чтобы показать все записи ARP в таблице о компьютерах в вашей сети.
Не все с IP-адресом - это компьютер - я обнаружил, что ни одно из этих предложений не вернуло все активные IP-адреса - на самом деле большинство возвратило очень мало. В моей домашней сети есть комбинация проводных и беспроводных устройств и два маршрутизатора, мобильные телефоны, телевизор, PVR, Apple AirPort и, вероятно, некоторые вещи, которые я забыл. Я использовал следующее для сканирования всех адресов в подсети 192.168.1.xxx:
for /L %i in (0,1,255) do ping -n 1 -w 250 192.168.1.%i>>ipaddress.txt
Получившийся файл ipaddress.txt содержит результаты ping для всех адресов, и я искал те, у которых " Received = 1
" - в настоящее время 16 адресов вернули результат - у меня только 4 компьютера в доме - и не все были включены.
for /L %i in (0,1,255) do ping -n 1 192.168.1.%i -4 | findstr -m "bytes=32" >> ipaddress.txt
имеет свои достоинства, но не является фундаментальным для ответа, не согласуется с остальным ответом, который использовался Received = 1
вместо bytes=32
, и не обязательно так, как я бы это сделал. Я добавляю этот комментарий, если кто-то посчитает это предложение полезным.
for /L %i in (1,1,254)
может быть более подходящим, так xxxxxx.0
как это адрес всей сети и xxxxxx.255
широковещательный адрес.
Есть net view /all
команда, которая перечислит все имена компьютеров, которые подключены к одной локальной сети.
Из этого вы можете получить отдельные IP-адреса с помощью nslookup <computer name>
команды или написать пакетный скрипт, чтобы сделать это для вас.
Вот пример пакета, который я собрал, чтобы проиллюстрировать.
@echo off
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
set "xComputer=%%~A"
if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
if "!xNext!"=="1" (
echo.!xComputer! = %%X.%%Y
set "xNext=0"
)
if "!xComputer:~2!"=="%%~X" set "xNext=1"
)
)
endlocal
pause
Не Помимо arp -a
, net view /all
или написать пакетный сценарий не существует родной / встроенный в командной строке , чтобы сделать это (по крайней мере , не то, что я знаю).
Если вы хотите использовать не родную команду, я бы предложил использовать Nmap . Вы можете запустить nmap -sn 192.168.0.0/24
(заменив подсеть на подходящую для вашей локальной сети), чтобы добиться того, что вы ищете, более надежно, чем net view /all
или, arp -a
по моему мнению.
ipconfig /all
(используйте косую черту, а не назад)
Как указано кем-то другим, вы можете, arp -a
однако, убедиться, что вы сначала пропингуете широковещательный адрес, чтобы ARP сообщал обо всех устройствах. Например,ping 192.168.0.255
вы получите список всех устройств, подключенных к сети по их IP и MAC-адресам. Вы можете посмотреть MAC-адреса на веб-сайте, таком как https://aruljohn.com/mac.pl, чтобы узнать, кто является поставщиком NIC. Это должно помочь вам сузить, что большинство устройств. т.е. компьютеры, принтеры, телевизор, мобильный телефон и т. д.
echo ls %USERDNSDOMAIN%|nslookup
отобразить все IP-адреса компьютера (те, которые используются)
Я думаю, вы могли бы иметь в виду, что netstat -a
это дает вам активный список. Если вы хотите узнать программу, используя IP-адрес, используйте netstat -b
(открыть как администратор).
netstat -a
выводит список текущих сетевых подключений. Левый столбец IP-адреса содержит локальный интерфейс.