Polecenie Windows, aby wyświetlić wszystkie adresy IP

31

Wiem, że jest jeden wiersz polecenia i jego argumenty, które mogą pomóc wyświetlić wszystkie adresy IP komputera (te, które są używane) w sieci LAN, a mój komputer jest również klientem, jak jeden z wyświetlanych, ale zapomniałem. Co to jest?

Bé Vú Sữa 1
źródło
Nie sądzę, że jest to możliwe w tak ogólny sposób.
theglauber,
Będziesz musiał pingować skan lokalnej podsieci, a następnie użyć polecenia arp -a wymienionego poniżej.
cpt_fink
Lepiej sprawdzić cały adres IP za pomocą „Angry IP address”.
vembutech

Odpowiedzi:

28

Możesz wykonać arp -apolecenie, aby wyświetlić wszystkie wpisy ARP w tabeli dotyczące komputerów w sieci.

Źródło

GigabitP
źródło
6
Pokazuje każdy system, z którym twój komputer jest świadomy / z którym rozmawiał - jednak może nie być kompletny - przeprowadziłem szybki eksperyment z arp -a i nie pokazałem jednego lub dwóch moich systemów, dopóki go nie pingowałem.
Journeyman Geek
Tak, jak powiedział link, który napisałem, nie pokaże wszystkiego, chyba że ma je zapisane w tabelach, więc maszyny nie będą pokazywane, ale robi całkiem niezłą listę.
GigabitP,
Welcone do Stack Exchange, Gigabit Pony! Kiedy link stanowi większość twojej odpowiedzi, powinieneś zawsze cytować ważne części, na wypadek gdyby umarł później. Zobacz także howto na temat pisania dobrych odpowiedzi .
Blacklight Shining
21

Nie wszystko z adresem IP to komputer - nie znalazłem żadnej z tych sugestii, która zwróciła wszystkie aktywne adresy IP - w rzeczywistości większość zwróciła bardzo niewiele. Moja domowa sieć ma połączenie urządzeń przewodowych i bezprzewodowych oraz dwóch routerów, telefonów komórkowych, telewizji, PVR, Apple AirPort i prawdopodobnie kilku rzeczy, o których zapomniałem. Użyłem następujących do skanowania wszystkich adresów w podsieci 192.168.1.xxx:

for /L %i in (0,1,255) do ping -n 1 -w 250 192.168.1.%i>>ipaddress.txt

Wynikowy plik ipaddress.txt zawiera wyniki ping dla wszystkich adresów i szukałem tych z „ Received = 1” - obecnie 16 adresów zwróciło wynik - mam tylko 4 komputery w domu - i nie wszystkie były włączone.

Clifford
źródło
Sugerowany edit (wycofana) for /L %i in (0,1,255) do ping -n 1 192.168.1.%i -4 | findstr -m "bytes=32" >> ipaddress.txtma zasługi, ale nie jest podstawą do odpowiedzi, nie są zgodne z resztą odpowiedzi, które wykorzystywane Received = 1zamiast bytes=32, i niekoniecznie jest sposobem bym zrobił. Dodam ten komentarz, jeśli ktokolwiek uzna sugestię za przydatną.
Clifford
1
for /L %i in (1,1,254)może być bardziej odpowiednie, ponieważ xxxxxx.0jest to adres całej sieci i xxxxxx.255adres rozgłoszeniowy.
Scott,
13

Istnieje net view /allpolecenie, które wyświetli listę wszystkich nazw komputerów podłączonych do tej samej sieci LAN.

Następnie możesz pobrać poszczególne adresy IP za pomocą nslookup <computer name>polecenia lub napisać skrypt wsadowy, aby to zrobić za Ciebie.

Oto przykładowa partia, którą zrzuciłam dla zilustrowania.

@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
David Ruhmann
źródło
5

Oprócz arp -a, net view /alllub napisanie skryptu wsadowego nie ma natywny / wbudowany w wierszu polecenia, aby to zrobić (przynajmniej nie o tym nie wiem).

Jeśli chcesz użyć komendy innej niż natywna, sugeruję użycie Nmapa . Możesz uruchomić nmap -sn 192.168.0.0/24(zastępując podsieć odpowiednią do swojej sieci LAN), aby osiągnąć to, czego szukasz, bardziej niezawodnie niż net view /alllub arp -amoim zdaniem.

Drew Chapin
źródło
1

ipconfig /all (użyj ukośnika do przodu, a nie do tyłu)

Unnikrishnan
źródło
20
ipconfig zawiera listę interfejsów samego komputera, a nie adresów IP używanych w sieci LAN.
Christian
1

Jak wskazał ktoś inny, możesz arp -ajednak użyć najpierw pingowania adresu rozgłoszeniowego, aby ARP zgłosił wszystkie urządzenia. Na przykład,ping 192.168.0.255

otrzymasz listę wszystkich urządzeń podłączonych do sieci według ich adresów IP i MAC. możesz wyszukać adresy MAC na stronie takiej jak https://aruljohn.com/mac.pl, aby dowiedzieć się, kto jest sprzedawcą karty sieciowej. Powinno to pomóc ci zawęzić zakres większości urządzeń. tj. komputery, drukarki, telewizor, telefon komórkowy itp.

Sean
źródło
0
echo ls %USERDNSDOMAIN%|nslookup
Eric Douglas Miller
źródło
8
Witamy w SU. Czy możesz wyjaśnić, co robi polecenie?
Martin Prikryl
0

To jest moje szybkie rozwiązanie. Informuje, jaki typ urządzenia jest podłączony do każdego adresu IP:

netstat -r 
DR_WHO
źródło
0

wyświetl wszystkie adresy IP komputerów (te, które są używane)

Myślę, że możesz powiedzieć, że netstat -adaje to ci aktywną listę. Jeśli chcesz poznać program za pomocą adresu IP, użyj netstat -b(otwórz jako administrator).

TarranJones
źródło
Technicznie rzecz biorąc, netstat -azrzuca listę bieżących połączeń sieciowych. Lewa kolumna adresu IP zawiera interfejs lokalny.
Ben N