Как nc идентифицирует имена служб

Как nc идентифицирует имена служб
root@nanana:~# nc -zv localhost 5432
Connection to localhost 5432 port [tcp/postgresql] succeeded!

Как nc узнает, что postgres прослушивает порт? Просто по общим номерам портов и предположению?

решение1

Вывод основан только на номере порта.

nc обычно получает эту информацию из /etc/servicesфайла, который (в зависимости от операционной системы) может содержать либо полное содержимое IANAНазвания служб и номера портовреестр, или небольшой набор распространенных портов эпохи ARPANET, или сочетание того и другого.

(В зависимости от ОС этот файл обычно не считывается напрямую, а через getservent() и инфраструктуру libc «nsswitch», которая может предоставлять дополнительные источники для имен служб, например, NIS/LDAP/Hesiod.)

Связанный контент