Elenco di indirizzi IP / nomi host dalla rete locale in Python



2 Answers

Aggiornamento : lo script ora si trova su github .

Ho scritto un piccolo script in pitone , che sfrutta l' scapy di scapy arping() .

Question

Come posso ottenere facilmente in Python un elenco di indirizzi IP o nomi di host da una rete locale?

Sarebbe meglio se fosse multipiattaforma, ma prima deve lavorare su Mac OS X, poi seguire altri.

Modifica: per locale intendo tutti gli indirizzi attivi all'interno di una rete locale, ad esempio 192.168.xxx.xxx .

Quindi, se l'indirizzo IP del mio computer (all'interno della rete locale) è 192.168.1.1 , e ho altri tre computer collegati, vorrei che restituisse gli indirizzi IP 192.168.1.2 , 192.168.1.3 , 192.168.1.4 , e forse i loro nomi di host.




Ecco un piccolo strumento scanip che ti aiuterà a ottenere tutti gli indirizzi IP ei loro indirizzi mac corrispondenti nella rete (Works on Linux). Questo è il link per scanip (scanner Ip e Mac) scritto in python. https://pypi.python.org/pypi/scanip/1.0

Puoi anche scaricarlo usando pip install scanip su linux e usarlo, creare un file di test in python e usarlo come questo-

import scanip.scanip

scanip.scanip.start_scan()

ed esegui questo programma. Tutti gli indirizzi IP e i corrispondenti indirizzi MAC nella LAN verranno visualizzati nel terminale.




Provare:

import socket

print ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1])





Related