List of IP addresses/hostnames from local network in Python
If you know the names of your computers you can use:
import socket
IP1 = socket.gethostbyname(socket.gethostname()) # local IP adress of your computer
IP2 = socket.gethostbyname('name_of_your_computer') # IP adress of remote computer
Otherwise you will have to scan for all the IP addresses that follow the same mask as your local computer (IP1), as stated in another answer.
Update: The script is now located on github.
I wrote a small python script, that leverages scapy's arping()
.
If by "local" you mean on the same network segment, then you have to perform the following steps:
- Determine your own IP address
- Determine your own netmask
- Determine the network range
- Scan all the addresses (except the lowest, which is your network address and the highest, which is your broadcast address).
- Use your DNS's reverse lookup to determine the hostname for IP addresses which respond to your scan.
Or you can just let Python execute nmap externally and pipe the results back into your program.