Извлечь только MAC-адреса из arp-scan -l - PullRequest
0 голосов
/ 24 февраля 2019

Я хочу собрать только MAC-адреса из arp-scan -l, не указав IP-адреса и имя устройства.Как мы это делаем?Я знаю, что в среднем столбце указаны MAC-адреса.

192.168.1.1 bc:98:89:47:20:f8   Fiberhome Telecommunication Technologies Co.,LTD
192.168.1.3 70:18:8b:5e:01:fd   Hon Hai Precision Ind. Co.,Ltd.
192.168.1.5 90:e7:c4:da:80:76   HTC Corporation
192.168.1.6 b8:27:eb:b0:4d:25   Raspberry Pi Foundation

Я хочу вот так

bc:98:89:47:20:f8
70:18:8b:5e:01:fd   
90:e7:c4:da:80:76
b8:27:eb:b0:4d:25

Редактировать:

arp-scan -l дает следующий результат

Interface: wlp5s0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.1.1 bc:98:89:47:20:f8   Fiberhome Telecommunication Technologies Co.,LTD
192.168.1.5 90:e7:c4:da:80:76   HTC Corporation
192.168.1.3 70:18:8b:5e:01:fd   Hon Hai Precision Ind. Co.,Ltd.
192.168.1.5 90:e7:c4:da:80:76   HTC Corporation (DUP: 2)
192.168.1.6 b8:27:eb:b0:4d:25   Raspberry Pi Foundation
192.168.1.6 b8:27:eb:b0:4d:25   Raspberry Pi Foundation (DUP: 2)
192.168.1.4 80:35:c1:4a:a5:dc   (Unknown)

9 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 256 hosts scanned in 3.017 seconds (84.85 hosts/sec). 7 responded

Ответы [ 3 ]

0 голосов
/ 25 февраля 2019

Изучите базовую оболочку Unix!

В частности, команду cut можно использовать для извлечения столбцов из текста.Установите разделитель полей на пробел (возможно, по умолчанию) и выберите второе поле.

0 голосов
/ 10 марта 2019

Использование опции --plain arp-scan может упростить задачу.Он будет отображать простой вывод, показывая только отвечающие хосты.Информация о хостах разделена табуляцией, MAC-адрес (2-й столбец) можно легко извлечь через cut, как описал Anony-Mousse:

arp-scan -l --plain | cut -f 2

0 голосов
/ 24 февраля 2019

Я предполагаю, что вы используете оболочку, похожую на linux, и установлена ​​утилита awk (в основном она предустановлена) -

arp-scan -l | awk '/.*:.*:.*:.*:.*:.*/{print $2}'

...