Geralmente, com a API getservbyport()
, que é uma interface para a estrutura Name Service .
É a mesma família de funções que resolve endereços IP para hospedar nomes, nomes de usuários para ids de usuários e assim por diante.
getservbyport()
normalmente visualizará /etc/nsswitch.conf
(que lista qual banco de dados usar para cada categoria), para a entrada de services
.
Se a entrada para services
mostrar files
, o arquivo /etc/services
como um arquivo de texto simples será usado, como /etc/passwd
seria usado se files
fosse mencionado para passwd
(o usuário banco de dados).
Você pode ter outras formas de bancos de dados. Nos sistemas GNU, se houver um banco de dados xyz
listado, ele será consultado usando uma biblioteca libnss_xyz.so
compartilhada carregada sob demanda.
Diferente de files
, os comuns são db
, nis
, nisplus
, ldap
...
Em implantações simples, geralmente é apenas files
, então /etc/services
.