После нескольких лет рассмотрения установки старого ноутбука как сервер в домашней сети и мир в целом, который я предполагаю, я хотел бы узнать больше о IP-адресах.
Как я могу найти, какие IP-адреса хранятся на моем компьютере теперь? Таким образом, я могу посмотреть на интересные файлы теперь. Я могу возможно использовать их позже для установки IP-адресов для конфигурирования программ.
Хотя командная строка и относящиеся к обработке текстов теги появляются под этим вопросом, решение GUI совершенно приветствуется вместо командной строки. grep
не имеет к используемому для выполнения относящегося к обработке текстов тега и если двоичные файлы могут быть интерпретированы, который все хорошо и хороший также.
grep
Можно использовать grep
найти все файлы, содержащие что-то, что похоже на IP-адрес IPv4. Знайте, что будут ложные положительные стороны. Например, файл:
/usr/src/linux-headers-4.14.30-041430/include/linux/oid_registry.h
в строке 48 будет содержать:
OID_smimeAuthenticatedAttrs, /* 1.2.840.113549.1.9.16.2.11 */
Это вид похож на IP-адрес в комментариях, но это не.
Первоначально запустите с количества всех строк, содержащих IP-адрес в Вашей системе:
$ sudo time grep -rnwI --exclude-dir={boot,dev,media,mnt,lib,proc,root,run,sys,/tmp,tmpfs,var} -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" / | wc
27.76user 13.17system 1:31.06elapsed 44%CPU (0avgtext+0avgdata 10416maxresident)k
12451744inputs+0outputs (2major+2098minor)pagefaults 0swaps
17164 122083 3138285
Давайте сломаем команды
sudo
предотвращает "Разрешение, отклоненное" ошибкиtime
говорит нам, сколько времени это берет для выполнения, т.е. 1 минута 31 секундаgrep
команда, которая ищет строки в файлах-rnwI
аргументы (иначе, параметры) передал grep
. r
означает, что рекурсивные подкаталоги значения обрабатываются. n
аргумент печатает номер строки, строка поиска происходит в файле. I
аргумент говорит этому игнорировать двоичные файлы. Если бы двоичные файлы были, включают количество файлов, увеличился бы от 17 164 до 22 253 в моей системе. Вы не можете открыть двоичные файлы и иметь любой смысл их все же.-exclude-dir=
каталоги должны исключить из поиска. Без этого списка grep
может занять 53 часа для завершения: 'grep'ing все файлы для строки занимает много времени-E
аргумент grep
это говорит этому, что строка поиска собирается следовать."([0-9]{1,3}[\.]){3}[0-9]{1,3}"
строка поиска должна ожидать. Объясненный более подробно ниже./
говорит grep
запускаться в корневом каталоге. Однако исключенные каталоги будут пропущены.|
команда канала, отправляющая весь вывод в wc
команда вместо экрана.wc
команда "для подсчета количества слов". Это считает числовые оси, количество слов и количество символов передали ему. В нашем случае это 17164
строки, 122,083
слова и 3,138,285
персонажи. Запятые добавляются для ясности."([0-9]{1,3}[\.]){3}[0-9]{1,3}"
Как показано ранее строка поиска передала grep
"([0-9]{1,3}[\.]){3}[0-9]{1,3}"
. Вот то, как это работает:
"([0-9]{1,3}[\.]){3}[0-9]{1,3}"
^ ^ ^ ^ ^ ^
| | | | | +---- count of digits must be 1 to 3
| | | | +--------- look for digits 0 through 9
| | | +------------- patterns 1 to 3 digits of 0-9 followed by . occurs 3 times
| | +------------------ count of 1 to 3 digits must be followed by .
| +---------------------- count of digits is 1 to 3
+--------------------------- look for digits 0 to 9
Видеть, что эффективная выходная мощность вместо просто подсчета слов удаляет | wc
от конца командной строки:
$ sudo time grep -rnwI --exclude-dir={boot,dev,media,mnt,lib,proc,root,run,sys,/tmp,tmpfs,var} -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /
(... SNIP ...)
/usr/bin/printer-profile:176: OUT="nc 192.168.1.12 9100 < xxx.prn"
/opt/google/chrome/default_apps/external_extensions.json:23: "external_version": "0.0.0.6"
/opt/google/chrome/product_logo_32.xpm:330:" [.}.}.|.1.2.3.4.5.6.7.8.9.0.a.b.8.c.d.e.f.g.h.h.i.j.k.l. ",
28.52user 12.54system 1:31.78elapsed 44%CPU (0avgtext+0avgdata 9516maxresident)k
12793352inputs+0outputs (3major+1884minor)pagefaults 0swaps
Список является слишком длинным для вписываний в этот ответ. Обратите внимание, что последний найденный файл является положительной ложью:
/opt/google/chrome/product_logo_32.xpm
потому что это не содержит реальный IP-адрес:
[.}.}.|.1.2.3.4.5.6.7.8.9.0.a.b.8.c.d.e.f.g.h.h.i.j.k.l.
/etc
каталог сначалаСужать поиск к большему количеству значимого использования шорт-листа:
$ sudo time grep -rnI -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /etc/etc/hosts:1:127.0.0.1 localhost
/etc/hosts:2:127.0.1.1 alien
/etc/cron.daily/google-earth:47:Version: GnuPG v1.4.2.2 (GNU/Linux)
(... SNIP ...)
/etc/cups/cups-browsed.conf:77:# BrowseDeny 192.168.1.13
/etc/cups/cups-browsed.conf:78:# BrowseDeny 192.168.3.0/24
/etc/cups/cups-browsed.conf:79:# BrowseDeny 192.168.3.0/255.255.255.0
0.04user 0.03system 0:00.19elapsed 40%CPU (0avgtext+0avgdata 2800maxresident)k
22384inputs+0outputs (1major+181minor)pagefaults 0swaps