Команда Windows для отображения всех IP-адресов

31

Я знаю, что есть одна строка команды и ее аргументы, которые могут помочь отобразить все IP-адреса компьютеров (те, которые используются) в локальной сети, и мой компьютер также является клиентом, как один из отображаемых, но я забыл. Что это такое?

Bé Vú Sữa 1
источник
Я не думаю, что это возможно таким общим способом.
theglauber
Вам нужно будет выполнить ping-сканирование локальной подсети, а затем использовать команду arp -a, указанную ниже.
cpt_fink
Лучше проверить все IP-адреса, используя «Angry IP address».
vembutech

Ответы:

28

Вы можете выполнить arp -aкоманду, чтобы показать все записи ARP в таблице о компьютерах в вашей сети.

Источник

GigabitP
источник
6
Он показывает каждую систему, о которой ваш компьютер знает / с которой разговаривал - однако, она может быть неполной - я провел быстрый эксперимент с arp -a, и он не показывал одну или две мои системы, пока не отправил эхо-запрос.
Подмастерье Компьютерщик
Я. Как и ссылка, которую я разместил, она не покажет все, пока не сохранит их в таблицах, поэтому машины не будут отображаться, но список будет довольно хорошим.
GigabitP
Добро пожаловать в стек, Gigabit Pony! Когда ссылка составляет большую часть вашего ответа, вы всегда должны цитировать важные части на случай, если она умрет позже. Смотрите также инструкции по написанию хороших ответов .
Blacklight Shining
21

Не все с 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, и не обязательно так, как я бы это сделал. Я добавляю этот комментарий, если кто-то посчитает это предложение полезным.
Клиффорд
1
for /L %i in (1,1,254)может быть более подходящим, так xxxxxx.0как это адрес всей сети и xxxxxx.255широковещательный адрес.
Скотт
13

Есть 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
Дэвид Руман
источник
5

Не Помимо arp -a, net view /allили написать пакетный сценарий не существует родной / встроенный в командной строке , чтобы сделать это (по крайней мере , не то, что я знаю).

Если вы хотите использовать не родную команду, я бы предложил использовать Nmap . Вы можете запустить nmap -sn 192.168.0.0/24(заменив подсеть на подходящую для вашей локальной сети), чтобы добиться того, что вы ищете, более надежно, чем net view /allили, arp -aпо моему мнению.

Дрю Чапин
источник
1

ipconfig /all (используйте косую черту, а не назад)

Унникришнан
источник
20
ipconfig перечисляет интерфейсы самого ПК, а не IP-адреса, используемые в локальной сети.
Кристиан,
1

Как указано кем-то другим, вы можете, arp -aоднако, убедиться, что вы сначала пропингуете широковещательный адрес, чтобы ARP сообщал обо всех устройствах. Например,ping 192.168.0.255

вы получите список всех устройств, подключенных к сети по их IP и MAC-адресам. Вы можете посмотреть MAC-адреса на веб-сайте, таком как https://aruljohn.com/mac.pl, чтобы узнать, кто является поставщиком NIC. Это должно помочь вам сузить, что большинство устройств. т.е. компьютеры, принтеры, телевизор, мобильный телефон и т. д.

Шон
источник
0
echo ls %USERDNSDOMAIN%|nslookup
Эрик Дуглас Миллер
источник
8
Добро пожаловать в СУ. Не могли бы вы рассказать, что делает команда?
Мартин Прикрыл,
0

Это мое быстрое решение. Он говорит вам, какой тип устройства подключен к каждому IP-адресу:

netstat -r 
DR_WHO
источник
0

отобразить все IP-адреса компьютера (те, которые используются)

Я думаю, вы могли бы иметь в виду, что netstat -aэто дает вам активный список. Если вы хотите узнать программу, используя IP-адрес, используйте netstat -b(открыть как администратор).

TarranJones
источник
Технически говоря, netstat -aвыводит список текущих сетевых подключений. Левый столбец IP-адреса содержит локальный интерфейс.
Бен N