Is there a way to get the MAC Address and signal strength of nearby wireless devices from something like a phone or a laptop, or by using an access-point?
-
2Do you want to see the MAC address and signal strength of ALL wireless devices in range, or just ones acting as APs (wireless routers)? It's trivial to find APs (and AP-like things, such as Wi-Fi Direct Group Owners). It's less trivial to find client devices, especially unassociated client devices.– SpiffDec 31, 2017 at 2:05
-
Please add an OS tag; the answer will be different e.g. on Windows, Linux, and Mac.– dirktDec 31, 2017 at 8:49
-
1@idontevenknow, Please see What should I do when someone answers my question ?– C0deDaedalusMay 27, 2018 at 15:49
4 Answers
Well Everybody answered the Question for Windows Platform only. So, I thought It would be useful to answer for Linux Platform too. On Linux you can do the following:
Getting MAC Address of Devices connected in your network
You can Use a number of tools for thus task such as Netdiscover, arp-scan, nmap and even WireShark. These tools are basically used in Penetration Testing of Wireless Networks and can be used to get to know who is in the Network by knowing their IP Address and MAC Address.
ARP (Address Resolution Protocol) is used to map MAC addresses to IP addresses on an internal network. The router and switches send out broadcast ARP requests to all the MAC addresses on the network asking them to respond with their IP addresses. Each system will then respond with their IP address and the switch or other device will then create a small database that maps the MAC to the IP address, so that it it knows "who is who". Both the tools Uses ARP Packets to get this information.
Using
Netdiscover
Netdiscover is used for the active or passive scanning of those wireless networks without the DHCP server. It can also be used for scanning hub/switched networks.
netdiscover -i eth0 -r 192.168.2.0/24
where
-i
denotes the interface (Here eth0) &-r
denotes the `IP Range to be tested.Using
arp-scan
arp-scan (also called ARP Sweep or MAC Scanner) is a very fast ARP packet scanner that shows every active IPv4 device in the network. Since ARP is non-routable, it only works in local LAN (local subnet or network segment). It shows all active devices even if they have firewalls.
arp-scan --interface=wlan0 [ --localnet ] 192.168.0.1/24
Getting MAC Address of Devices NOT connected in your network
Well this part is an exact answer to your Question about both MAC Address and Signal of nearby devices. For this we can use Airmon-ng tool to setup a Wireless Monitor and then use Airodump-ng to dump the wireless signals from Monitor to Sreen. Both tools are part of Aircrack-ng, again a set of tools used for Penetration Testing of Wireless Networks. This is a prefect tool for what you want.
Using Aircrack-ng Suite is not quite easy but It's worth the time and effort. Writing all commands in the answer will make it quite boring, So A short steps of commands goes like this
Check Interface Status:
airmon-ng
Check any Processes that can be troublesome to Airmon-ng & killing them:
airmon-ng check kill
Enable monitor mode (start) on the given wireless interface (wlan0)
airmon-ng start wlan0
where
wlan0
is the name of wireless interface. Typeiwconfig
at terminal to get the wireless interface name of wireless device on your machine.Start Airodump-ng to dump the packets from Wireless Monitor
airodump-ng mon0
where
mon0
is the monitor initiated on the interfacewlan0
. Now You will clearly see all the devices nearby you and everyone's MAC Address and signal Strength also. When done press Ctrl+C to stop Monitoring.Finally stop the Monitor mode on Interface
airmon-ng stop wlan0
Note : It doesn't matters whether you are connected or not to a wireless Network for Using Airmon-ng. The only problem is that Using Airmon-ng commands need to put the Wireless Interface (on your device) into Monitor mode, as a result of which you will get disconnected to any Wireless Network, but the rest of all works perfect for what you need.
-
Could I use the aforementioned airmon commands to get the MAC Address and relative signal strengths of both connected and non-connected devices? For example, if I had a wirelessly connected laptop from which I would issue these commands, could I obtain the MAC addresses and signal strengths (relative to my device) of the nearby devices? Dec 31, 2017 at 21:28
-
@idontevenknow Yes Yes Yes, you can do that. I've updated my answer to concern your comment. Jan 1, 2018 at 5:33
How can I get the MAC Address and signal strength of nearby wireless devices?
From a Windows PC you can:
1. Use WifiChannelMonitor from Nirsoft:
WifiChannelMonitor is a utility for Windows that captures wifi traffic on the channel you choose, using Microsoft Network Monitor capture driver in monitor mode, and displays extensive information about access points and the wifi clients connected to them. WifiChannelMonitor also allows you to view the information about wifi clients that are not connected to any access points, including the list of SSIDs (network names) that they are trying to connect.
Note:
- This application requires the installation of Microsoft Network Monitor
Example output:
2. Use WifiInfoView from Nirsoft:
WifiInfoView scans the wireless networks in your area and displays extensive information about them, including: Network Name (SSID), MAC Address, PHY Type (802.11g or 802.11n), RSSI, Signal Quality, Frequency, Channel Number, Maximum Speed, Company Name, Router Model and Router Name (Only for routers that provides this information), and more...
When you select a wireless network in the upper pane of this tool, the lower pane displays the Wi-Fi information elements received from this device, in hexadecimal format.
WifiInfoView also has a summary mode, which displays a summary of all detected wireless networks, grouped by channel number, company that manufactured the router, PHY type, or the maximum speed.
Example output:
3. Use netsh
from a cmd
shell:
netsh wlan show networks mode=bssid
Example output:
> netsh wlan show networks mode=bssid
Interface name : Wireless Network Connection
There are 19 networks currently visible.
SSID 1 : TP-LINK_6A7CD0
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
BSSID 1 : e8:94:f6:6a:7c:d0
Signal : 24%
Radio type : 802.11g
Channel : 4
Basic rates (Mbps) : 1 2 5.5 11
Other rates (Mbps) : 6 9 12 18 24 36 48 54
SSID 2 : Virgin Media
Network type : Infrastructure
Authentication : WPA2-Enterprise
Encryption : CCMP
BSSID 1 : d2:05:c2:fb:7d:89
Signal : 26%
Radio type : 802.11g
Channel : 6
Basic rates (Mbps) : 1 2 5.5 11
Other rates (Mbps) : 6 9 12 18 24 36 48 54
BSSID 2 : 52:0d:10:91:50:d9
Signal : 18%
Radio type : 802.11g
Channel : 6
Basic rates (Mbps) : 1 2 5.5 11
Other rates (Mbps) : 6 9 12 18 24 36 48 54
...
Further Reading
- An A-Z Index of the Windows CMD command line
- A categorized list of Windows CMD commands
- Netsh Commands for Wireless Local Area Network (WLAN)
Disclaimer
I am not affiliated with Nirsoft in any way, I am just an end user of their software.
-
It looks like these solutions are only showing nearby APs, not all wireless devices.– SpiffDec 31, 2017 at 2:03
-
NirSoft's WiFiChannelMonitor seems to collect info on all nearby active wifi devices: nirsoft.net/utils/wifi_channel_monitor.html Dec 31, 2017 at 6:39
-
-
Can I pick up this information from devices that aren't connected to any network, like a mobile phone that has WiFi on but isn't yet connected to a network? Dec 31, 2017 at 21:30
-
@idontevenknow Yes, with WiFiChannelMonitor "WifiChannelMonitor also allows you to view the information about wifi clients that are not connected to any access points"– DavidPostill ♦Dec 31, 2017 at 21:35
Google Nearby can be used to find WiFi and Bluetooth devices. There are other utilities that perform a scan for any WiFi enabled device.
Nirsoft's "Wireless Network Watcher is a small utility that scans your wireless network and displays the list of all computers and devices that are currently connected to your network," showing MAC address and other information, and there are other alternatives.
For Linux, try LinSSID. N.B., it must be run as superuser. e.g. in Ubuntu, you can create a startup file as:
gnome-terminal -e "sudo linssid"
-
Wireless Network Watcher only shows devices connected to the local network. It doesn't show signal strength or other nearby wireless devices (routers). WifiInfoView from Nirsoft (as per my answer) is a better choice.– DavidPostill ♦Dec 30, 2017 at 23:18
-
@DavidPostill, though WifiInfoView is very useful, I believe it shows only WiFi access points, not WiFi devices, as asked. Dec 30, 2017 at 23:33
-
You can do that by using a tool called kismet. You will be able to discover all the devices with wifi enabled and even get information like MAC ID, RSSI and other useful information. TO perform a scan in kismet you need to put your card into monitor mode first. You can do that by using the command:
airmon-ng start wlan0
Wlan0 is the name of your interface Then you can launch kismet using the command:
kismet -c wlan0mon
wlan0mon is your interface name after enabling monitor mode Then you can point your web to the address that kismet specifies to see the devices. You can extract the list of devices by using REST endpoints that kismet provides.