You can do this 3 ways.
You have to know the subnet you want to scan (192.168.0.x or 10.0.0.x or what have you).
run ifconfig
to see your subnet. In my examples I will use 192.168.0.255
Method 1 nmap
IMO nmap is best, as long as you do not mind installing packages
sudo apt-get install nmap
Then search by ping (nmap can of course be more complicated and this assumes you are not firewalling ping)
nmap -sP 192.168.0.*
Method 2 : use arp
ping -b 192.168.0.255
arp -a
Method 3, and perhaps an even better option, log into your router. Most routers have a web interface that will show all connected devices.
Of course these methods will not tell you what is at which IP, although nmap will try to guess the OS if you wish.
https://nmap.org/book/man-os-detection.html
May give you a clue what is at what IP, or not.
Best Answer
You can find them with arp-scan:
sudo arp-scan -I eth0 -l
will show IP addresses, MAC address and manufacturer of the NIC and the line in the output that is a duplicate also identifies itself with a(DUP: 2)
(where 2 is the second time this IP address is found foreth0
.Some possible options to make the search more specific:
sudo arp-scan -I eth0 192.168.1.1 192.168.1.2 192.168.1.3
sudo arp-scan -I eth0 192.168.1.0/24
sudo arp-scan -I eth0 192.168.1.0:255.255.255.0
sudo arp-scan -I eth0 192.168.1.3-192.168.1.27
sudo arp-scan -I eth0 --file=ip-address-list.txt
sudo arp-fingerprint -o "--interface=eth0 --numeric" 192.168.1.111
displays the IP address, the binary fingerprint string, and a list of known systems that match this fingerprint:192.168.1.111 01000100000 Linux 2.2, 2.4, 2.6
You can add
|grep {part.of.ip.address}
to limit the output (do not use wildcards but regular expressions if you need more exotic combinations).