11 votos

¿Cómo leo la salida de dns-sd?

Cuando ejecuto el comando dns-sd, por ejemplo como dns-sd -B _services._dns-sd._udp. para listar todos los tipos de servicio en mi red local, obtengo una tabla que se ve así:

$ dns-sd -B _services._dns-sd._udp.
Buscando _services._dns-sd._udp.
FECHA: ---Mar 31 Dic 2013---
14:39:57.995  ...INICIANDO...
Timestamp     A/R    Flags  if Dominio               Tipo de Servicio      Nombre de la Instancia
14:39:57.995  Add        3   4 .                    _tcp.local.          _ssh
14:39:57.996  Add        3   4 .                    _tcp.local.          _sftp-ssh

Entiendo "Timestamp", y "A/R" probablemente sea Agregar/Remover. ¿Qué son los "Flags"? ¿Qué es "if"?

0 votos

Bueno, la página del manual no es muy útil pero las URL listadas en la página del manual para mDNSResponder tienen algunas pistas útiles. Pondré una respuesta si encuentro una buena explicación de Flags y campos...

0 votos

Bmike: Sí, probablemente debería haber mencionado que consulté la página del manual y --help ya. Descubrí lo que significaba "flags" (respondido abajo), pero todavía estoy un poco confundido sobre "if".

6voto

osantana Puntos 1005

Una media respuesta:

Encontré el código fuente para dns-sd.c y dns_sd.h, que datan de 2004 y OS X "Lion", donde "flags" es un valor de tipo DNSServiceFlags, que parece ser uno de estos constantes (obsoletas). Si es así, entonces "1" significa "kDNSServiceFlagsMoreComing": otra entrada debería seguir inmediatamente. "2" significa solo "kDNSServiceFlagsAdd". "3" significa "kDNSServiceFlagsAdd" junto con "kDNSServiceFlagsMoreComing". No muy útil.

Según ese mismo programa, "if" es uint32_t ifIndex, el "índice de interfaz", que también se menciona en esa página de desarrolladores de Apple. Estoy viendo valores como "4" y "0", y no logro entender del todo el significado. Parece ser tanto un bitmask para solicitar una clase de interfaz (donde 0 significa "cualquiera", y -1/-2/-3 convertido a un uint32_t son otras clases), y un índice en una lista de interfaces de red (donde 0 significa "error", y enteros positivos indican una interfaz válida). Solo tengo una interfaz de red activa, y no puedo decir que sea "#4" de nada, o por qué veo "0" para algunas solicitudes de dns-sd.

El código mDNSResponder de Apple, en muchas revisiones a lo largo de muchos años, está en https://opensource.apple.com/source/mDNSResponder/.

0 votos

Cuando estás navegando, la respuesta que obtienes es una secuencia de registros. "más por venir" significa que hay otro registro llegando en la secuencia justo detrás de este, así que si ibas a hacer algo costoso como actualizar una GUI, espera hasta que llegue el siguiente registro. La primera lista de resultados debería ser todas 3 con la última siendo 2. El if es el número de interfaz de red. Puedes tener muchas interfaces "ocultas" (por ejemplo, un loopback, túnel IPv4->6, túnel IPv6->4), así que #4 probablemente sea tu interfaz Ethernet o WiFi.

1voto

rick sustek Puntos 1

"if" es una abreviatura de "interfaz". "Interfaz" es un término utilizado en el ámbito del protocolo de red, y en este caso, una interfaz es una entidad de software que se vincula en el extremo inferior de la capa de Protocolo de Internet (IP) de la pila. Un módulo de software de "interfaz" proporciona una API conocida a IP, para vincular controladores de hardware de red en la capa IP. Las interfaces típicas proporcionan este enlace para cosas como Ethernet, WiFi, Bluetooth, Firewire, etc. Dado que una máquina puede tener más de una interfaz de medios físicos, la capa IP puede vincularse a múltiples interfaces. Estos enlaces se mantienen mediante valores de índice simples en una tabla. El valor de "if" en la pantalla de dns-sd es simplemente el número de índice de la interfaz a través de la cual el servicio es accesible.

Puedes averiguar qué interfaces están configuradas en tu sistema con otras utilidades de línea de comandos, como netstat -i. En OS X y otros sistemas UNIX, es posible que veas listado, lo que significa índice 4.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X