Назад | Перейти на главную страницу

Нестандартный IP-адрес с тире

Я запустил who в общем окне NetBSD, и появился этот странный IP-адрес пользователя:

<redacted> pts/33   May 13 02:13  (XXX.XXX.XXX.XXX)
<redacted> pts/35   May 12 20:59  (202-172-110-147-)
<redacted> pts/36   May  6 20:36  (XXX.XXX.XXX.XXX)

Я никогда не видел такого IP. Очевидно, ping 202-172-110-147- будет жаловаться с "Не удается разрешить ... (Неизвестный хост)".

Был похожий вопрос опубликовано 7 лет назад, который утверждал, что это нестандартный способ обозначения диапазонов IP-адресов, но, видя, что есть - в конце адреса это не похоже.


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

Я пробовал обратный DNS с nslookup 202-172-110-147-, в котором возникает ошибка "** сервер не может найти 202-172-110-147-: NXDOMAIN"

Делать w <user> возвращает:

9:49AM  up 89 days,  7:46, 1 user, load averages: 0.23, 0.18, 0.17
USER          TTY     FROM              LOGIN@  IDLE WHAT
<redacted>    pts/35  202-172-110-147- Tue08PM  4:13

Изменить 2: это на NetBSD, а не на Linux, как я упоминал в начале (я думал, что это Linux):

$ uname -rsv
NetBSD 8.1 NetBSD 8.1 (GENERIC) #0: Fri May 31 08:43:59 UTC 2019  mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC

Изменить 3: после обновления @NStorm я запустил w -n для отображения сетевых адресов в виде чисел. Я все еще вижу тот же результат

$ w -n <user>
 9:57AM  up 89 days,  7:54, 1 user, load averages: 0.12, 0.12, 0.14
USER          TTY     FROM              LOGIN@  IDLE WHAT
<redacted>    pts/35  202-172-110-147- Tue08PM  4:22

Это просто DNS RR (обратная запись), преобразованная из IP в это имя.

Невозможно действительно сопоставить разрешенную RR с исходным IP-адресом, поскольку записи независимы. Более того, RR может содержать несуществующее доменное имя. Таким образом, вы не можете полагаться на RR для получения информации об IP вошедших пользователей.

Чтобы проверить реальный IP-адрес без разрешения DNS, вы можете использовать last -a -i команда, которая показывает не только пользователей, вошедших в систему в данный момент, но и всех недавних входов в систему.

Если вам действительно нужно отображать только зарегистрированных в данный момент пользователей, вы можете просто отфильтровать последний вывод с помощью grep следующим образом: last -ai | grep "still logged in"

Или вы можете просто использовать w -fi согласно комментарию Янне Пиккарайнена ниже, если у вас есть современный дистрибутив. Я только что понял, что это уже действительно неподдерживаемые версии дистрибутива, в которых отсутствует поддержка ключа -i этого инструмента, например CentOS 5. Просто имейте в виду - если ваш дистрибутив жалуется на w -fi, вы всегда можете использовать last как указано выше.

РЕДАКТИРОВАТЬ: В качестве информации об обновлении OP для ОС ниже (NetBSD 8.1) вот способ получить IP вместо записей DNS в NetBSD в соответствии с Справочные страницы NetBSD: w -n

    -n      Show network addresses as numbers (normally w interprets
                 addresses and attempts to display them symbolically).

Или last -n -f /var/run/utmptx:

     -n             Print host addresses numerically.  This option works only
                    on wtmpx(5) entries, and prints nothing on wtmp(5)
                    entries.

Согласно руководствам NetBSD, если пользователь в данный момент вошел в систему /var/run/utmptx это единственное место, где он регистрирует реальный IP-адрес вошедших в систему пользователей как struct sockaddr_storage ut_ss поле. Если у вас нет доступа к этому файлу и / или текущим сетевым соединениям (netstat например, к которому у вас, скорее всего, тоже нет доступа), вы не можете сказать наверняка. Тогда лучший способ - угадать.

Похоже, что 202-172-110-147- запись усечена из полного доменного имени. Но мы можем попытаться угадать, что это IP 202.172.110.147 который пытался копать RR. И бинго:

dig -x 202.172.110.147
...
;; ANSWER SECTION:
147.110.172.202.in-addr.arpa. 300 IN    PTR     202-172-110-147-cpe.spintel.net.au.

Похоже, это тот самый. И полное имя хоста 202-172-110-147-cpe.spintel.net.au который просто усечен в who и другой инструмент вывода.

Если у вас есть доступ к /var/log/wtmpx вы можете получить этот IP оттуда, но только после того, как этот пользователь выйдет из системы.