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

6

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

$ dns-sd -B _services._dns-sd._udp.
Browsing for _services._dns-sd._udp.
DATE: ---Tue 31 Dec 2013---
14:39:57.995  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
14:39:57.995  Add        3   4 .                    _tcp.local.          _ssh
14:39:57.996  Add        3   4 .                    _tcp.local.          _sftp-ssh

Obtengo "Marca de tiempo" y "A / R" es probablemente Agregar / Quitar. ¿Qué son las "banderas"? ¿Qué es "si"?

    
pregunta Ken 31.12.2013 - 23:44

2 respuestas

2

Media respuesta:

Encontré el código fuente de dns-sd en Lion , donde "flags" es un valor de tipo DNSServiceFlags , que parece ser una de estas constantes (en desuso) . Si es así, entonces "3" significa "kDNSServiceFlagsAdd" junto con "kDNSServiceFlagsMoreComing", y "2" significa solo "kDNSServiceFlagsAdd" ... no es 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 puedo entender el significado. Parece ser tanto una máscara de bits para solicitar una clase de interfaz (donde 0 significa "cualquiera", y -1 / -2 / -3 convertidos a una uint32_t son otras clases), y un índice en una lista de interfaces de red (donde 0 significa "error", y los enteros positivos indican una interfaz válida). Solo tengo una interfaz de red activa, y no puedo decir que es "# 4" de nada, o por qué vería "0" para algunas solicitudes de dns-sd.

    
respondido por el Ken 01.01.2014 - 01:19
0

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

Puede averiguar qué interfaces están configuradas en su sistema y qué otras utilidades de línea de comandos, como netstat -i . En OS X y otros UNIX, puede ver <Link#4> en la lista, lo que significa el índice 4.

    
respondido por el rick sustek 30.09.2014 - 17:36

Lea otras preguntas en las etiquetas