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

Почему netstat сообщает неправильные имена компьютеров?

Мне нужно выяснить, какие клиенты подключены к моему приложению, и я использую для этого команду netstat. Я заметил, что иногда он не сообщает мне правильное имя машины.

Почему это происходит? Есть ли лучший способ получить список клиентов, подключенных к моему серверу?

Я считаю, что netstat получает IP-адрес подключенного хоста и выполняет обратный поиск DNS по этому адресу (я знаю, как работает netstat в Unix, я подозреваю, что так работает netstat в Windows).

Итак, во-первых, имя сети не обязательно имеет какое-либо отношение к имени машины. Во-вторых, внутри DNS сетевые имена и адреса имеют отношения "многие ко многим". То есть поиск данного имени может возвращать список адресов, а поиск адреса может возвращать список имен - но порядок записей в списках может быть другим, и списки могут не совпадать. Кроме того, нередко программное обеспечение не обрабатывает ответы списка DNS правильно и использует только первый элемент в списке.

Таким образом, ваша концепция «правильного» имени для подключенного к сети хоста может не соответствовать тому, что администрация DNS этого хоста считает «правильным» именем. Возможно, вы оба правы с разных точек зрения, но поскольку вы получаете имя в результате поиска DNS, ответ DNS - это то, что вы получаете.