Come faccio a sapere gli indirizzi IP di altri computer nella mia rete?


51

Supponiamo che io abbia due computer collegati alla stessa rete. So che da computer1 e la condivisione file abilitata posso curiosare all'interno di computer2. Ma dì che c'è qualcosa di interessante su computer2, a cui accedi digitando localhost: 9091 in safari. (ad es. interfaccia utente web della trasmissione). Per accedervi avrei dovuto digitare ip_address_of_computer2: 9091 su computer1.

Ma come posso trovare l'indirizzo IP di computer2 senza usare computer2?


Conosci il nome di computer2?
user151019

Risposte:


82

Metodo n. 1

Il modo più semplice sarebbe accedere alla pagina di amministrazione del router di rete. Avrà informazioni su qualsiasi altro dispositivo sulla rete, incluso l'indirizzo IP.

Metodo n. 2

Se conosci il nome di rete del computer, puoi pingfarlo nel Terminale. Restituirà l'indirizzo IP del computer.

Metodo n. 3

Se non conosci il nome della rete del computer, puoi usare un altro trucco ping. Trova il tuo indirizzo IP e la tua subnet mask. Entrambi dovrebbero essere visibili nel riquadro delle preferenze di rete in Preferenze di Sistema. Allineare il tuo indirizzo IP e la tua subnet mask e sostituire tutti i 0valori nella subnet mask con 255nella stessa posizione relativa dell'indirizzo IP. Ad esempio, se si dispone rispettivamente del seguente indirizzo IP e maschera di sottorete:

192.168.1.151

255.255.255.0

Si 0trova nell'ultimo campo della subnet mask, quindi si sostituisce l'ultimo campo dell'indirizzo IP con 255e si esegue il ping:ping 192.168.1.255

Dovresti ottenere una risposta con l'indirizzo IP di qualsiasi dispositivo sulla rete in grado di rispondere ai ping.

Metodo n. 4

L'ultimo trucco è usare il comando terminale arp -a. Questo mostrerà l'indirizzo IP e MAC di tutti i dispositivi della rete di cui è a conoscenza.

Ultimi due trucchi per gentile concessione di questo articolo di Macworld.


8
Il metodo n. 4 arp -a funzionerà se, e solo se, il Mac ha già eseguito correttamente il sondaggio o era collegato a un host. Mettiti alla prova riavviando il Mac e visualizzando la tabella arp. Sarà quasi vuoto. Per popolare quella tabella devi eseguire qualcosa come un ping scan:nmap -sP 192.168.1.0/24
ripat,

Per qualche motivo, il ping 192.168.1.255 restituisce gli indirizzi da tutti i Mac della rete, ma nessuno dalle macchine Linux?!? Ottimo consiglio però!
ssc

1
ping SOME-PC -4per risolvere la risoluzione IPV4.
Nakilon,

Funziona se stai eseguendo il ping di un computer Windows?
Cullub,

1
@cullub Sì, funziona in Windows. ping adminPCesegue il ping del computer adminPC e visualizza l'indirizzo IP. E come ha commentato Nakilon, ping adminPC -4visualizza IPv4.
Lucky

19

Digita il comando

  arp -a

Questo ti mostrerà tutti i collegamenti uno per uno.


Questo non sembra funzionare per alcuni dispositivi. Non sono sicuro se è perché i dispositivi non stanno "ascoltando" o se è a causa di diversi sistemi operativi, ma lo sto provando ora e arp -anon sta raccogliendo una delle mie scatole di Linux.
Jacksonkr,

La prima volta che vai a parlare con un altro dispositivo sul tuo computer, il tuo computer deve risolvere IP -> MAC, e quindi trasmette "chi ha IP xxx.yyy.zzz.aaa?" E il proprietario di quell'IP risponde ( trasmissioni) con "me!", e ovviamente quel pacchetto contiene un MAC sorgente. Se tale transazione non è avvenuta mentre il dispositivo era in rete, non avrà una voce ARP per esso. Quindi: non tutti i dispositivi vengono visualizzati nella tabella ARP, ma possono essere visualizzati nelle tabelle ARP di altri dispositivi.
Harv,

4

D: Come faccio a sapere gli indirizzi IP di altri computer nella mia rete ?

Molte reti

Bene, prima di tutto il tuo computer è probabilmente su molte reti . Puoi vederlo con il ifconfigcomando. Ci sono molte informazioni, ma la maggior parte è travolgente, quindi mi piace filtrare è così:

$ ifconfig | grep -E '^[a-z0-9]|inet '

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
    inet 172.141.0.10 --> 172.141.0.9 netmask 0xffffffff
en5: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    inet 169.254.146.193 netmask 0xffff0000 broadcast 169.254.255.255
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.3.1 netmask 0xffffff00 broadcast 192.168.3.255

Il primo campo delle linee allineate a sinistra sono i nomi delle interfacce di rete. Il tuo wifi è probabilmente en0. La mia VPN TunnelBlick su AWS è utun1. Le mie preferenze di sistema> Condivisione> Condivisione Internet creata bridge100per RaspberryPi Ricevo Internet dal mio MacBook Pro tramite il mio dongle Ethernet.

Supponiamo IPv4

Poiché hai richiesto gli indirizzi IP, suppongo che gli indirizzi IPv4 siano ciò che ti interessa. Ho usato "inet" (con uno spazio) per bloccare le voci "inet6" per IPv6. Se volevi IPv6 probabilmente sai di più sulla rete di me e dovrei farti delle domande.

Trova gli host

Concentriamoci su questo bridge100e portiamo un po 'di traffico di Google. Molte persone si imbattono in questa situazione quando vogliono SSH o RDC in un computer senza testa (come un RaspberryPi ) sulla propria rete o collegati tramite Condivisione Internet . È particolarmente difficile quando non si ha una cronologia delle connessioni (tabella arp) con il dispositivo. Per questo puoi usare sudo nmap -sn 192.168.3.0/24, che è il valore di bridge100 inet (192.168.3.1) con l'ultima cifra sostituita da "0/24". Tuttavia, nmap non è standard su OSX, quindi possiamo installarlo con homebrew .

$ brew install nmap
Warning: nmap-7.31 already installed

$ sudo nmap -sn 192.168.3.0/24
Password:

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-21 22:03 EST
Nmap scan report for 192.168.3.6
Host is up (0.00025s latency).
Nmap scan report for 192.168.3.1
Host is up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.08 seconds

Da ciò puoi presumere che il mio RaspberyPi abbia ottenuto l'IP 192.168.3.6per qualche motivo. L'ultima volta che l'ho collegato ero su una sottorete diversa e ho ottenuto 192.168.2.3. Quel trucco di nmap è molto meglio che scrivere ping 192.168.3.2... ping 192.168.3.6fino a quando non lo trovi.

Spero che aiuti.


3

Ci sono alcuni altri strumenti che non sono stati ancora menzionati per scoprire le informazioni sull'indirizzo IP, supponendo che tu abbia il nome host e stai usando mDNS (aka Bonjour in ambienti Mac). A meno che tu non abbia configurato le cose in modo diverso, i nomi delle tue reti locali sono nel modulo, host-name.localquindi nell'esempio iniziale che dovresti cercarecomputer2.local

Il primo:

    dscacheutil -q host -a name <host-name>.local

Per esempio:

    % dscacheutil -q host -a name computer2.local
    name: computer2.local
    ip_address: 10.0.1.6

Un altro strumento utile è dig(provare dig google.comad esempio), che con alcuni parametri speciali può essere utilizzato per interrogare i nodi mDNS della rete locale.

    % dig @224.0.0.251 -p 5353 <host-name>.local
    % dig @224.0.0.251 -p 5353 -x <ip-address>

Per ottenere solo l'indirizzo IP da digte puoi provare:

    % dig +short @224.0.0.251 -p 5353 <host-name>.local

Un buon bu richiede conoscere l'indirizzo IP o il nome multicastDNS del computer (.local).
Florian Bidabe,

BonjourBrowser è una bella applicazione GUI per questo.
Florian Bidabe,

@FlorianBidabe - Perché dici che devi conoscere l'indirizzo IP per usare questi comandi? Questi comandi restituiscono l'indirizzo IP della macchina denominata. Sì, è necessario conoscere il nome del computer di destinazione per utilizzare questo metodo.
KenB,

3

Questo script dovrebbe darti ciò che stai cercando molto rapidamente e richiede l'installazione di nmap. Il vantaggio è che se il tuo host non risponde alle sonde ping, nmap troverebbe comunque l'host mentre altri strumenti no.

#!/bin/bash
i="en1" # edit this to fit your Network interface
cidr=$(while read y; do echo ${y%.*}".0/$(m=0; while read -n 1 x && [ $x = f ]; do m=$[m+4]; done < <(ifconfig $i | awk '/mask/             {$4=substr($4,3); print $4}'); echo $m )"; done < <(ifconfig $i | awk '/inet[ ]/{print $2}') | head -n 1 | sed s/addr://g | sed 's/\/0//g')
myip=`ifconfig $i | grep "inet " | awk 'NR==1 {print $2}' | sed s/addr://g`
set -x
sudo nmap -n -T4 -PN -p9091 --exclude "$myip" "$cidr"

Memorizza questo script come lookup.she chiamalo (con passaggio all'inglese) con

LANG=c bash lookup.sh

Come lo salvi e lo esegui?
Daniel Pendergast,

Si incolla questo in TextEditor e si salva e si denomina questo file "qnmap". Quindi spostare questo file in / usr / bin (comando Hold + Maiusc + G, oppure Finder / Vai / Vai alla cartella: / usr / bin). terminale aperto, digitare "sudo chmod a + x / usr / bin / qnmap". Digita "qnmap" nel terminale e attendi il risultato.
Florian Bidabe,

Ok. Ottengo questo errore: /usr/bin/qnmap: line 2: =en1: command not foundsembra che il simbolo del dollaro prima iche non ci sia.
Daniel Pendergast,

1
Scusa Dan, mio ​​cattivo, la linea dovrebbe essere: i = "en1"
Florian Bidabe,

Freddo. Funziona bene
Daniel Pendergast,

2

Puoi anche usare netstat per mostrare gli indirizzi di rete:

roger.moore@WKSTCAL0141 ~
$ netstat -n

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    127.0.0.1:11235        127.0.0.1:49184        ESTABLISHED
  TCP    127.0.0.1:49155        127.0.0.1:49156        ESTABLISHED
  TCP    127.0.0.1:49156        127.0.0.1:49155        ESTABLISHED
  TCP    127.0.0.1:49184        127.0.0.1:11235        ESTABLISHED
  TCP    192.168.10.131:445     192.168.10.119:52624   ESTABLISHED
  TCP    192.168.10.131:1433    192.168.10.2:60866     ESTABLISHED
  TCP    192.168.10.131:1433    192.168.10.119:52775   ESTABLISHED
  TCP    192.168.10.131:3389    192.168.10.119:54473   ESTABLISHED
  TCP    192.168.10.131:49154   192.168.10.119:52796   ESTABLISHED
  TCP    192.168.10.131:49182   192.168.10.9:52230     ESTABLISHED
  TCP    192.168.10.131:49247   192.168.10.6:445       ESTABLISHED
  TCP    192.168.10.131:49432   192.168.10.4:1106      ESTABLISHED
  TCP    192.168.10.131:49440   192.168.10.4:1106      ESTABLISHED
  TCP    192.168.10.131:49451   192.168.10.6:1025      ESTABLISHED
  TCP    192.168.10.131:55100   192.168.10.2:445       ESTABLISHED
  TCP    192.168.10.131:64558   192.168.10.20:135      TIME_WAIT
  TCP    192.168.10.131:64559   192.168.10.20:49158    TIME_WAIT
  TCP    192.168.10.131:64566   192.168.10.100:135     TIME_WAIT
  TCP    192.168.10.131:64575   192.168.10.100:59811   TIME_WAIT
  TCP    192.168.10.131:64581   192.168.10.41:139      TIME_WAIT
  TCP    192.168.10.131:64582   192.168.10.3:5357      TIME_WAIT
  TCP    192.168.10.131:64585   192.168.10.61:3910     TIME_WAIT
  TCP    192.168.10.131:64587   192.168.10.65:3910     TIME_WAIT
  TCP    192.168.10.131:64588   192.168.10.9:139       TIME_WAIT
  TCP    192.168.10.131:64589   192.168.10.135:2869    ESTABLISHED
  TCP    192.168.10.131:64593   192.168.10.6:135       TIME_WAIT
  TCP    192.168.10.131:64594   192.168.10.6:1025      TIME_WAIT
  TCP    192.168.10.131:64599   192.168.10.100:59811   TIME_WAIT


0

È possibile installare Wireshark e avviare una scansione sulla scheda di rete.

Filtra il risultato per "nbns" e vedrai l'indirizzo IP nella finestra in alto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.