¿Cómo puedo instalar getent en Snow Leopard?

7

Tengo varios scripts que requieren la utilidad getent . Además, he leído varios consejos útiles que utilizan getent .

getent es una utilidad de red que está ampliamente disponible en Unix, * BSD y sistemas basados en Linux. Esta herramienta es utilizada comúnmente por los administradores de sistemas y los usuarios avanzados para buscar información de red (direcciones IP, etc.). En cuanto a los nombres de host, getent es una de las pocas herramientas que usan /etc/hosts y DNS.

Como Wikipedia dice :

  

getent es un comando de Unix que ayuda a un usuario a obtener entradas en una serie de   Archivos de texto importantes llamados bases de datos.

Lo importante aquí es que getent buscará los mismos servicios de nombres en el mismo orden que la mayoría de las aplicaciones en un sistema similar a Unix. Esto hace que sea invaluable al depurar problemas en el sistema o la aplicación. Herramientas como dig y nslookup solo miran al DNS, mientras que dscl espera que deletree los servicios de nombres que desea buscar.

Me gustaría usar getent para dos testcases:

  1. Analizar /etc/hosts antes de consultar DNS . Por ejemplo, si agrego testhost.example.org a /etc/hosts , entonces getent hosts testhost.example.org debería usar la entrada de /etc/hosts antes de consultar DNS.

  2. Consultar LDAP mediante getent

MacPorts no parece proporcionar un paquete que proporcione getent .

¿Existe getent en Snow Leopard?

    
pregunta Stefan Lasiewski 20.03.2012 - 00:41

2 respuestas

7

dscacheutil es probablemente la mejor manera de hacer esto. No emula el proceso de búsqueda habitual, lo utiliza , por lo que obtendrá los mismos resultados que una búsqueda estándar (incluido el almacenamiento en caché, / etc / hosts, registros de computadora en servicios de directorio, DNS , mDNS para nombres locales, etc).

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 69.192.45.15

$ dscacheutil -q host -a name gordons-mbp.local
name: gordons-mbp.local
ipv6_address: fe80:5::e6ce:8fff:fe50:136

name: gordons-mbp.local
ip_address: 192.168.10.249

$ dscacheutil -q host -a ip_address 127.0.0.1
name: localhost
alias: 1.0.0.127.in-addr.arpa 
ip_address: 127.0.0.1

$ dscacheutil -q user -a name gordon
name: gordon
password: ********
uid: 501
gid: 20
dir: /Users/gordon
shell: /bin/bash
gecos: Gordon Davisson
    
respondido por el Gordon Davisson 12.03.2013 - 20:24
3

Echa un vistazo a Cómo emular Unix 'getent con dscl de MacOSX . Dado que tiene scripts que utilizan getent , es posible que desee buscar un script como un contenedor alrededor de dscl.

    
respondido por el Lars Rohrbach 20.03.2012 - 08:44

Lea otras preguntas en las etiquetas