Come posso ottenere tutti gli indirizzi IP ei nomi host associati in una LAN?Elenco di tutti gli host sulla rete LAN
risposta
Per ottenere l'elenco di interfacce e indirizzi IP, utilizzare getifaddrs()
.
Ricerca per le interfacce con ifa_addr->sa_family == AF_INET
L'indirizzo IP è in sin_addr.s_addr
.
È quindi possibile utilizzare gethostbyaddr()
per cercare il nome DNS per quell'indirizzo IP.
Aggiornamento:
E 'stato mi ha fatto notare che il PO è stato probabilmente chiedendo di scoprire altri host, piuttosto che gli indirizzi delle interfacce sulla macchina locale.
Non esiste un modo affidabile per scoprire altre macchine sulla rete locale, ma ci sono un paio di trucchi.
metodo Ping: Utilizzare l'utilità ping (o un equivalente programmatico) per eseguire il ping l'indirizzo di broadcast locale, poi vedere chi risponde. L'indirizzo di trasmissione può essere trovato elencando le interfacce come mostrato sopra. Credo che ICMP non richieda l'accesso come root in OSX. Si noti che molti sistemi possono avere il ping ICMP disabilitato o firewallato, in modo da ottenere solo risposte da quelle non invisibili.
metodo ARP: controllare la cache ARP del sistema per vedere quali indirizzi IP sono stati recentemente attivati. Questo mostrerà solo i sistemi che hanno trasmesso pacchetti sullo stesso segmento di rete negli ultimi minuti.
Entrambi i metodi possono essere bloccati da firewall, router e persino interruttori, quindi i bordi esatti della "LAN" possono essere piuttosto stretti. Entrambi i metodi possono essere implementati a livello di codice, ma potrebbe essere più semplice e più portabile per chiamare semplicemente i comandi della riga di comando ping
o arp
.
La domanda suona più come l'autore vuole enumerare tutti i diversi host sulla LAN, non solo le informazioni sugli uplink degli attuali host. – jdizzle
Forse. Ora capisco che la domanda originale non era specifica per la piattaforma, quindi probabilmente hai ragione. –
- 1. Come ottenere l'IP di tutti gli host nella LAN?
- 2. WebRTC sulla rete locale?
- 3. Raccolta fatture forzata su tutti gli host
- 4. SSH su Linux: disabilitazione del controllo della chiave host per gli host sulla subnet locale (known_hosts)
- 5. Elenco di tutti gli utenti e gruppi
- 6. Come posso rilevare l'iPhone sulla rete?
- 7. Trova tutti gli indirizzi IP nella rete locale
- 8. Apache Virtual Host (sottodominio) l'accesso con diversi computer della LAN
- 9. Formatta tutti gli elementi di un elenco
- 10. Elenco di tutti gli eventi Tkinter
- 11. Debug del progetto cloud ASP.NET sulla LAN
- 12. Come ottenere un elenco di tutti gli indirizzi IP validi in una rete locale?
- 13. Android: elenco di tutti i dispositivi collegati alla rete
- 14. trovare tutti gli indirizzi IP in una rete
- 15. Ottenere l'elenco dei dispositivi nella rete locale (LAN)?
- 16. Ottenere gli ID di tutti gli oggetti in un elenco
- 17. Virtual box Solo host Interfaccia di rete
- 18. Eliminare tutti gli elementi da un elenco
- 19. Serializzazione Java sulla rete
- 20. Esiste un modello per sincronizzare gli elenchi di dati sulla rete?
- 21. Simulazione LAN con Java?
- 22. Strip tutti gli elementi di un elenco di stringhe
- 23. IP Camera, come rilevarlo sulla rete?
- 24. aggiunta Virtual PC 2007 alla rete host
- 25. Come connettere il database sulla rete locale SQL Server 2008
- 26. Ottenere un elenco con tutti gli ascoltatori su Symfony2
- 27. Android: Come ottengo la potenza del segnale GSM per tutti gli operatori di rete disponibili
- 28. Elenco di tutti gli utenti sul client con meteora
- 29. Sottrarre tutti gli elementi di un elenco contro l'altro
Qual è la tua piattaforma (OS)? Vuoi C++ o Cocoa? –
@Steve: la mia piattaforma è Mac OS X 10.6 e uno sviluppatore di cacao. Ma sto usando il protocollo RFB. E devo usare quei protocolli che sono scritti in linguaggio C/C++. – boom
Quindi una soluzione C/C++ su OS X potrebbe funzionare per voi? –