Как сканировать точки беспроводного доступа?


15

В Ubuntu 11.04 я использовал InSSIDer для сканирования доступных точек доступа и сортировки их по уровню сигнала.

К сожалению, программа, кажется, не работает в Ubuntu 11.10, и

iwlist wlan0 scan

не возвращает ничего значимого.

Какие варианты я должен сканировать для поиска доступной точки беспроводного доступа, возможно, с графическим интерфейсом?


1
Релиз Ubuntu? Аппаратные средства? Окружающая обстановка? "что-нибудь значимое"? Должен ли я установить 11.04 и InSSIDer, чтобы узнать, какое поведение вы ищете? Что на самом деле означает «кажется сломанным»? Пожалуйста, помогите нам помочь вам, включив информацию в ваши вопросы. "Параметры"? Попробуйте сетевой менеджер. Вы должны найти его значок в верхнем ряду.
вальтинатор

Если вы прочитаете это более внимательно, все уже там. Я использую Ubuntu 11.10, а Inssider вообще не запускается. Я использую Intel Wi-Fi. Я хочу перечислить все доступные сети, отсортированные по силе.
Маскарпоне

2
sudo iwlist wlan0 scanning | egrep 'Cell |Encryption|Quality|Last beacon|ESSID'должно помочь
Вальтинатор

Ответы:


19

sudo iwlist wlan0 scanning | egrep 'Cell |Encryption|Quality|Last beacon|ESSID' должно помочь

Это комбинация sudo(запуск от имени root, выполнение привилегированных операций), iwlist wlan0 scanning(вывод некоторых данных в STDOUT), символа канала "|" (подключение STDOUT команды (й) слева к STDIN процесса справа) и egrepкоманда с «одинарными кавычками» (чтобы оболочка не могла интерпретировать символы «|») Регулярное выражение для фильтрации STDIN , См man bash, man sudo, man iwlist, man egrep, и man re_formatдля деталей.

ВСЕГДА делайте man как угодно (как указано выше) ПРЕЖДЕ ЧЕМ вы выполняете командную строку от кого-то еще. Самообразование намного безопаснее, чем слепое доверие.


2
Не могли бы вы включить объяснение этой команды?
NN

2
Не могли бы вы включить объяснение в свой вопрос вместо этого, чтобы другие могли найти его проще и извлечь из него пользу. Причина, по которой я попросил объяснений, состоит в том, чтобы сделать ваш ответ максимально полным.
NN

При желании вы можете добавить, что поиск по страницам руководства очень прост в использовании /. Многие новые пользователи Linux боятся размера страниц руководства и неспособности быстро найти правильную информацию.
user93692

Эта команда не нуждается в объяснении. Вопрос не о трубах или страницах управления. Необходимо принять некоторые предварительные знания, иначе большинство ответов на этом сайте придется начинать с инструкций по открытию терминала.
Кит

7

С помощью iw

Я не nm-toolустановил, поэтому я использую iw.

Эта команда сортирует точки доступа по силе сигнала, самый сильный сначала:

sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort

Каждая команда объяснила:

iw dev wlan0 scan: Поиск точек доступа, доступных через интерфейс wlan0

egrep "signal:|SSID:": Получить линии с уровнем сигнала и SSID из iwвыходных данных. Вывод теперь выглядит так:

        сигнал: -77,00 дБм 
        SSID: nameOfAccessPoint1
        сигнал: -71,00 дБм
        SSID: nameOfAccessPoint2

sed -e "s/\tsignal: //" -e "s/\tSSID: //": Уменьшите egrepвывод до этого:

-77,00 дБм 
nameOfAccessPoint1
-71,00 дБм
nameOfAccessPoint2

awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}': Приведите уровень сигнала и SSID на одной линии. Более конкретно, когда номер строки ( NR) четный, т. Е. Мы находимся на линии, показывающей точку доступа, разделитель выходной записи ( ORS) должен быть разрывом строки. В противном случае мы находимся на линии, содержащей силу сигнала, поэтому мы присоединяемся к линии, создавая ORSпростой пробел.

Если мы получим sortэтот вывод, мы получим список уровней сигнала и точек доступа, показывающий точку доступа с самым сильным сигналом сверху:

-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1

Осторожно: некоторые точки доступа могут иметь расширенные возможности: Расширенные возможности: * Список SSID

Таким образом, сокращение «SSID:» вместо «SSID» помогает избежать этого дополнительного вывода, что в противном случае могло бы привести к сбою команды.


1
Трубопроводы grepдля sedчтобы awk, вы не просто любите Linux! Очень хороший исчерпывающий ответ. Я знаю, что не должен писать дополнительный комментарий, но он действительно заслуживает одного, вы даже включили промежуточный вывод.
user93692

5
nm-tool | grep "Freq.*Strength" | sed -ne "s|\(.*Strength \([0-9]\+\).*\)|\2}\1|p" | sort -n -r
  1. Используйте выходные данные nm-toolдля получения списка точек беспроводного доступа
  2. Фильтр, чтобы получить только точки доступа
  3. Используйте sedдля добавления уровня сигнала перед каждой строкой
  4. сортировать выходные данные как числа в обратном порядке (сначала по величине)

nm-tool является частью пакета "network-manager", который, очевидно, установлен в типичной системе Ubuntu.


Благодарность! Эта команда предоставляет краткий и полный обзор всех точек доступа в диапазоне. Команда iwlist, похоже, динамически меняется от запуска к запуску в зависимости от текущей активности Wi-Fi; это также, кажется, терпит неудачу, когда слишком много точек доступа Wi-Fi сообщают одновременно.
phord

1

Вы также можете использовать nmcli, я нашел его сам несколько месяцев назад, и это самый простой, который я использовал до сих пор.

nmcli device wifi

Для получения другой информации, обратитесь к странице справочника.


-2
iwinfo wlan0 scan

wlan0 это ваш беспроводной интерфейс

результат как ниже список ...

Cell 06 - Address: F0:B4:29:50:76:0C
          ESSID: "Xiaomi_760B"
          Mode: Master  Channel: 1
          Signal: -38 dBm  Quality: 70/70
          Encryption: mixed WPA/WPA2 PSK (TKIP, CCMP) 
....

команда вернет информацию о шифровании

система: openwrt 15.05

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.