Yo estaría interesado en saber qué programas se anuncian mediante Bonjour en mi máquina. Es allí una manera de hacer eso?
Respuestas
¿Demasiados anuncios?El dns-sd
herramienta de línea de comandos puede ser útil para esto, pero el aprendizaje de su uso es un poco complicado.
Ejecución dns-sd -B _services._dns-sd._udp
devolverá una lista de todos los tipos de servicio que actualmente se está promocionando. (La lista es por la interfaz, por lo que habrá alguna redundancia.) Si esto se hace en un Mac sin conexión de red activa, la lista de curso sólo contienen los servicios que se ejecutan en la máquina.
El uso de la lista, usted puede solicitar información acerca de los servicios individuales de los tipos de cosas que se ejecutan como dns-sd -B _home-sharing._tcp
(que las listas de iTunes Home Sharing casos), y luego, dado un nombre de instancia, puede ejecutar dns-sd -L "Wes Campaigne's Library" _home-sharing._tcp
a la búsqueda de información para una instancia particular.
Para ser honesto, sin embargo, todo este proceso es algo tedioso, y es exactamente lo que Bonjour Navegador fue construido a hacer, así que le recomiendo usar. (La aplicación puede ser antigua, pero todavía funciona.) Cualquiera que sea la forma de hacerlo, sin embargo, no siempre está claro cuál es el programa que es responsable de una determinada entrada de servicio.
Puede utilizar la estrategia dada en binarybob la respuesta para tratar de servicio de mapas de entradas para la ejecución de los procesos basado en el número de puerto, pero esto no siempre funciona. Otra estrategia es la de ejecutar algo como dns-sd -B _home-sharing._tcp
que sigue abierta y los informes de casos se agregan o eliminan, entonces, uno por uno, dejar de diversas aplicaciones y (suponiendo que no es un servicio de sistema) ver que uno de dejar de fumar provoca la eliminación del mensaje.
Aunque podría no satisfacer tus criterios exactos, Tildesoft del Bonjour Navegador puede hacer una lista de todos los todos los servicios de bonjour anunciado en su local de la red y los hosts que son publicidad.
Supongo que a nivel local servicios anunciados, se podría profundizar en Bonjour Navegador para encontrar el número de puerto del servicio que se anuncia, a continuación, utilice lsof
para determinar la aplicación asociada con él, Por ejemplo:
lsof -i | grep 57857
da
iTunes 36720 ... TCP *:57857 (LISTEN)
cuando tengo iTunes se ejecuta.
Aunque se clasifica como un legado en el artículo, esta muy bien puede ser lo que usted está buscando: DNSServiceMetaQuery. Como se indica en la documentación:
En este ejemplo se utiliza DNSServiceQueryRecord para enviar un DNS de Multidifusión consulta que devuelve una lista de Bonjour de los tipos de servicio que se anuncia en la red local. Las máquinas deben estar ejecutando mDNSResponder-58.6 (Mac OS X 10.3.4) o más tarde en el fin de responder a esta consulta.
Para ejecutar DNSServiceMetaQuery en Mountain Lion (la construcción incluido no funciona correctamente), ir a la muestra de código de enlace y haga clic en Descargar el Código de Ejemplo. A continuación, instalar Xcode si usted no tiene ya. Crear un nuevo proyecto bajo la plantilla de Mac OS X > Aplicación > Herramienta de Línea de Comandos.
Abrir y copiar todo el texto en ~/Downloads/DNSServiceMetaQuery/DNSServiceMetaQuery.c
y péguelo en main.c
de su nueva Herramienta de Línea de Comandos del proyecto (en sustitución de todo lo que había en la plantilla). A continuación, tendrás que añadir CoreFoundation.marco para el proyecto haciendo clic en el nombre del proyecto en la barra lateral > Fases de construcción y abrir la flecha desplegable junto a Link Binario Con las Bibliotecas. Haga clic en el + botón de búsqueda para CoreFoundation.marco, y agregarlo. A continuación, haga clic en el botón Ejecutar (se parece a un botón de play) y esperar un Logrado Construir la imagen. Algo debe venir desde el botón de la ventana con un registro; esto mostrará todos sus servicios de Bonjour. Asegúrese de que Toda la Salida está activada.