Как найти “только” IP-адреса в Локальной сети

sudo arp-scan --interface=eth0 --localnet

Я знаю, что вышеупомянутая команда хорошо работает, но она производит все как MAC-адрес и т.д., и т.д. Но я должен найти только IP-адреса. Действительно ли это возможно?

2
задан 18 March 2014 в 20:30

4 ответа

Я просто использовал awk, tail и head для достижения того, что Вы хотите:

sudo arp-scan --interface=eth0 --localnet| awk '{print $1}'|tail -n +3|head -n -2

это дает вывод как

192.168.1.1
192.168.1.3

, поскольку у меня есть только эти два в моем Lan.

Здесь awk '{print $1}' печать IP-адрес, который расположен в первом столбце. tail и head удаляет ненужный материал как заголовок и просто показывает IP-адреса.

5
ответ дан 8 October 2019 в 11:16

Я сделал бы это использование всего grep:

$ sudo arp-scan --interface=eth0 --localnet | grep -oP '^[\d.]+'
192.168.0.1 
192.168.0.2 
192.168.0.3 
192.168.0.10    
192.168.0.23    
192.168.0.72    
192.168.27.1    
192.168.27.14
192.168.27.30

Объяснение:

Эти -P говорит grep использовать Perl Совместимые Регулярные выражения, где \d соответствия любое число. Эти -o означает "печать только часть соответствия строки". Регулярное выражение я использовал средства, соответствует самой длинной строке (это - то, что + средства), последовательных чисел (\d) или отмечает точкой (.), которые являются в начале строки (^).

9
ответ дан 8 October 2019 в 11:16

<забастовка> Здесь является одним лайнером для получения IP-адреса с помощью команды ifconfig:

~$ ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'
192.168.1.10

, который делает то, что Вы хотели? Или Вам была нужна команда arp-сканирования?

я перечитал и вижу, что упустил суть вопроса. arp-scan шоу локальные IP-адреса для сети и я только показал IP машины с ifconfig. Ниже версия вышеупомянутого terdon решение только не пользование библиотекой PCRE. Ubuntu имел проблему с pcre и grep, когда я попробовал его.

$ sudo arp-scan --interface=eth0 --localnet | grep -o ^[0-9.]*
2
ответ дан 8 October 2019 в 11:16

другая опция упростить ответ @Stormvirux состоит в том, чтобы использовать - тихий или-q и - плоскость или-x аргументы, которым предоставляют arp-сканирование вместо того, чтобы передать по каналу, чтобы возглавить и выследить команды, заключительная команда будет более простой, поскольку это передаст по каналу только к awk:

arp-scan -qx --localnet | awk '{print $1}'

и вот очень подробное объяснение от arp-сканирования - справка:

--quiet or -q       Only display minimal output. No protocol decoding.
            If this option is specified, then only the IP address
            and MAC address are displayed for each responding host.
            No protocol decoding is performed and the OUI mapping
            files are not used.

--plain or -x       Display plain output showing only responding hosts.
            This option suppresses the printing of the header and
            footer text, and only displays one line for each
            responding host. Useful if the output will be
            parsed by a script.
0
ответ дан 8 October 2019 в 11:16

Другие вопросы по тегам:

Похожие вопросы: