Find & Scan Wireless Networks from the Command Line in Mac OS X

Feb 28, 2012 - 10 Comments

Find and Scan Wi-Fi Networks in OS X Command Line

A long hidden airport command line utility buried deep in Mac OS X can be used to scan for and find available wireless networks. This powerful tool is very helpful for network admins and systems administrators, but it’s handy for the average user to help discover nearby wi-fi routers as well.

Accessing the Wi-Fi Utility in OS X Command Line

To use this tool to find nearby wifi networks, the first thing you’ll want to do is create a symbolic link from the airport utility to /usr/sbin for easy access. The command for this varies per version of OS X in use, select which is relevant to your OS X version on the Mac in question.

Launch the Terminal and type the following command:

Making a symbolic link for airport tool in OS X El Capitan, Yosemite, and later
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

If you see an “operation not permitted” error message it’s likely because you either don’t have a bin directory in /usr/local/ (you can make one yourself), or you have SIP enabled, the SIP rootless feature can be disabled if desired by advanced users.

Make a symbolc link for airport tool in OS X Mavericks, Mountain Lion, Snow Leopard

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport

Either of the above commands must appear on a single line to work properly.

Enter the administrator password to create the symbolic link, which functions as an alias would in the Finder. Now you can use the airport command without the lengthy path to access it.

How to Scan for Wireless Networks from Terminal in Mac OS X

Now, to scan for and find all wireless networks within range, type the following:

airport -s

The list returned will show all available wifi networks and their router name (SSID), the router address (BSSID), signal strength (RSSI), channel, and security types used by the network.

list wireless networks

This basically works like a command line wi-fi stumbler, revealing the available wireless networks that are within range.

By watching the output of airport -s and the RSSI strength, you could use the airport command line tool in a similar fashion to the Wi-Fi Diagnostics utility to optimize a wireless connection.

You can also get much of the same detailed information from the Wi-Fi menu by holding the Option key on click, although that will only show you details of one access point at a time.

Alternatively, Mac users can turn to the Wi-Fi scanner tool native to OS X to stumble for nearby wireless networks entirely in the GUI. The output will be the same for either the Wireless Diagnostics app approach, or the command line approach offered here.

Enjoy this tip? Subscribe to the OSXDaily newsletter to get more of our great Apple tips, tricks, and important news delivered to your inbox! Enter your email address below:

Related articles:

Posted by: William Pearson in Command Line, Mac OS X, Tips & Tricks

10 Comments

» Comments RSS Feed

  1. sL1Per says:

    Nice one!! But id rather create and alias for it!
    alias airport=’/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport -$1′

    Cheers

  2. Gordon Gecko says:

    makes you wonder what other cool utilities are hiding in the depths of obscure os x directories…

  3. King says:

    how can I delete this alias now?

    • W says:

      it’s not an alias, it’s just a symbolic link so that you can type ‘airport’ at the command line rather than a giant path first.

      You can remove the symbolic link by typing:

      sudo rm /usr/sbin/airport

      There is no practical reason to do so, however.

  4. M San says:

    How do I connect to a wireless network using command line?

  5. Nick says:

    If you’re reading this in 2015/2016 and you’ve now upgraded to El Capitan, you’ll get an error saying “ln: /usr/sbin/airport: Operation not permitted”.
    This is because the target directory should be /usr/local/bin/airport. The following solution works on all Mac versions including El Capitan:
    sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

  6. Mike says:

    You can’t simply perform a single check of the signal to noise ratio, or signal strength to determine the best network. The reliability of a network changes over time. You would need to see how many packets dropped over a period of minutes to get a more accurate check.

    I only say this because the command line doesn’t seem to be able to check for dropped packets… so maybe you were assuming signal to noise ratio or signal strength was a good test of network reliability.

Leave a Reply

 

Shop for Apple & Mac Deals on Amazon.com

Subscribe to OSXDaily

Subscribe to RSS Subscribe to Twitter Feed Follow on Facebook Subscribe to eMail Updates