13

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?

3
  • 2
    Do 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.
    – Spiff
    Dec 31, 2017 at 2:05
  • Please add an OS tag; the answer will be different e.g. on Windows, Linux, and Mac.
    – dirkt
    Dec 31, 2017 at 8:49
  • 1
    @idontevenknow, Please see What should I do when someone answers my question ? May 27, 2018 at 15:49

4 Answers 4

10

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.

  1. 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.

    See this Example

  2. 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
    

    Tutorial for using arp-scan & Full Documentation Here

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

  1. Check Interface Status:

    airmon-ng
    
  2. Check any Processes that can be troublesome to Airmon-ng & killing them:

    airmon-ng check kill
    
  3. Enable monitor mode (start) on the given wireless interface (wlan0)

    airmon-ng start wlan0
    

    where wlan0 is the name of wireless interface. Type iwconfig at terminal to get the wireless interface name of wireless device on your machine.

  4. Start Airodump-ng to dump the packets from Wireless Monitor

    airodump-ng mon0
    

    where mon0 is the monitor initiated on the interface wlan0. 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.

  5. 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.

Complete Tutorial on Using Aircrack-ng Suite

2
  • 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
3

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:

Example output:

enter image description here

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:

enter image description here

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


Disclaimer

I am not affiliated with Nirsoft in any way, I am just an end user of their software.

10
  • It looks like these solutions are only showing nearby APs, not all wireless devices.
    – Spiff
    Dec 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
    – kreemoweet
    Dec 31, 2017 at 6:39
  • @Spiff Answer updated. First option get all wireless devices.
    – DavidPostill
    Dec 31, 2017 at 9:10
  • 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
3

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"

3
  • 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
  • Hmm. Good point.
    – DavidPostill
    Dec 30, 2017 at 23:40
0

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .