Estoy tratando de obtener una lista de todas las direcciones IP en una red LAN. La razón de esto es que estoy escribiendo una aplicación que utiliza la impresora de recibos STAR TSP100LAN.Listar todas las direcciones IP de los dispositivos en la red wifi iOS sdk sin bonjour?
El proceso para obtener la dirección IP de la impresora es bastante engorroso para el usuario final. Implica apagar la impresora, mantener presionado el botón de alimentación del papel, volver a encender la impresora, esperar 15 segundos para que la impresora obtenga una dirección IP a través de DHCP y finalmente escupir un recibo con esta información.
Dado que la impresora no está habilitada Bonjour, ¿es posible obtener la dirección IP a través de otros métodos?
¡Cualquier ayuda es muy apreciada! Espero que esto no sea una pregunta repetida, pero a través de mi búsqueda ¡parece que no puedo encontrar una solución!
ACTUALIZACIÓN: Ok después de un poco de pensamiento que han llegado con una pseudo solución:
Determine actual Dirección IP del iPad a través de NSHost.
de Gaza el último cuadrante de la Dirección IP
uso de una cadena despojado como un prefijo, iterar 1-255 para el último cuadrante
- Cada iteración, intento de abrir un puerto a la dirección indicada mediante sdk de la impresora Si recibo una respuesta válida, sé que la dirección IP es una impresora Si no, excluyo la dirección IP de la lista de impresoras disponibles.
Hasta ahora esto ha estado funcionando, establecí un tiempo de espera de 5 milésegundos para cada intento de apertura de puerto. Pero descubrieron que esto puede devolver algunos resultados nulos a pesar de que en realidad haya una impresora en la red con una dirección IP asignada.
Tal vez si obtengo un resultado nulo la primera vez, debería aumentar el tiempo de espera a 15 milisegundos para un segundo intento de búsqueda.
* Pele el último cuadrante de la dirección IP ... itere 1-255 * Google "máscara de subred" –
Según el fabricante, hay un SDP (Star Discovery Protocol) disponible. Deberías tratar de implementarlo. Porque podría 'exitosamente' abrir el mismo puerto en un dispositivo no asociado pensando que está conectado a la impresora, si no lo hace. –