Como o nc identifica nomes de serviços

Como o nc identifica nomes de serviços
root@nanana:~# nc -zv localhost 5432
Connection to localhost 5432 port [tcp/postgresql] succeeded!

Como o nc descobre que o postgres está escutando na porta? apenas por números de porta comuns e por suposição?

Responder1

A saída é baseada apenas no número da porta.

nc geralmente obtém essas informações do /etc/servicesarquivo, que (dependendo do sistema operacional) pode conter o conteúdo completo da IANANomes de serviços e números de portaregistro, ou uma pequena seleção de portas comuns da era ARPANET, ou uma mistura de ambos.

(Dependendo do sistema operacional, esse arquivo geralmente não é lido diretamente, mas sim através de getservent() e da infraestrutura "nsswitch" da libc, que pode fornecer fontes adicionais para nomes de serviços - por exemplo, NIS/LDAP/Hesiod.)

informação relacionada