2012-02-06 12 views
5

sto creando un programma per parlare con un IP Camera, di questo modello:IP Camera, come rilevarlo sulla rete?

CVUL-I125

Questo ha una semplice interfaccia web e ho parlato con successo ad esso al fine di controllare, e il video grab e istantanee da esso.

Tuttavia, non riesco a trovare alcuna buona documentazione su come rilevare che questa telecamera è sulla rete, né quale particolare indirizzo IP ha.

Finora l'unico strumento che ho trovato è il software Windows in dotazione.

Sto presumendo (sperando!) Che ci sia un modo migliore di iterare semplicemente su tutti gli indirizzi IP nella gamma e vedere se c'è qualcosa che assomiglia all'interfaccia della telecamera lì.

Qualcuno sa come fare?

C'è una API conosciuta per questo genere di cose?

Si noti che poiché è una fotocamera IP IP, non si connette direttamente al mio computer, e quindi non c'è nulla installato localmente con cui posso parlare.

Qui ci sono alcuni dettagli:

  • La fotocamera e il software che sto facendo sarà venduto, il che significa che non posso contare su un particolare tipo di installazione sul posto i clienti, tranne che per lavorare DHCP
  • La fotocamera non ha documentazione API che riesca a trovare, se qualcuno ha più google-fu di me su quel punteggio, per favore mi illumini
  • La telecamera ha il supporto DHCP, quindi si collega di fatto alla rete con successo, il domanda è come posso in modo affidabile trovarlo dopo
  • Non so se ha un nome host, la documentazione non dice nulla e le mie proprie liste di server DHCP solo l'indirizzo MAC per esso
+1

Nota che, mentre programmerò questo, non sono del tutto sicuro che questa sia una buona domanda per SO, ma non sono del tutto sicuro che SU o qualsiasi altro sito sia buono eithe r. –

risposta

6

In base al collegamento fornito questa fotocamera è in grado di UPnP.

UPnP è un protocollo che ha diversi metodi per il rilevamento dei dispositivi/ricerca:

Il codice deve multicast pacchetti UDP, come le richieste di ricerca. I dispositivi UPnP risponderanno (a seconda della configurazione) con le risposte di ricerca UPnP che sono pacchetti unicast UDP.

Le risposte di ricerca UPnP contengono un URL HTTP per consentire il recupero di una descrizione XML del dispositivo. L'host nell'URL HTTP di solito è il dispositivo IP/hostname.

Dai un'occhiata allo UPnP spec.

Non si dice che OS/lingua in uso - quindi basta un piccolo elenco di API e biblioteche:

+0

Sembra * molto * promettente. Non pensavo affatto a UPnP. Lo esaminerò! Continuerò ad accettare la tua risposta per ora, finché non avrò confermato questo, ma questo sembra possente promettente. –

+0

@ LasseV.Karlsen aggiornato con collegamento a API/librerie ... – Yahia

+0

Implementerò questo in iOS, tramite MonoTouch (Mono), probabilmente ho bisogno del codice sorgente in sintassi C# per poterlo utilizzare. Fortunatamente probabilmente non ho bisogno di implementare l'intero stack UPnP, solo le parti relative alla scoperta. –

0

Quello che vuoi è quello di leggere le opzioni DHCP che questa telecamera di rete deve essere di passaggio. In genere qualsiasi dispositivo consumer emetterà la stringa identificatore del fornitore nell'opzione 43 dei pacchetti DHCP. Interfaccia con il server DHCP e il server DHCP può inviarti una notifica quando la videocamera è stata connessa alla rete.

Questa procedura è diversa per ciascun fornitore di dhcp. Sai cosa DHCP sarà in esecuzione nella rete?

Altrimenti suggerisco di installare un DHCPd semplice. Dovrebbe essere facilmente configurabile per reagire al giusto valore dell'opzione 43 e tornare alla tua applicazione.

+0

Probabilmente sarebbe una buona soluzione se la fotocamera e il software girassero solo sulla mia rete, ma intendo vendere il programma in bundle con la fotocamera, e quindi non posso contare sul server DHCP che lavora con me, almeno non se dipende da che tipo di server DHCP e/o configurazione ha il client. –

0

Sembra che usi DHCP (altrimenti non sarebbe sulla rete TUTTI).

Io uso questo strumento per tutto il tempo:

http://www.angryip.org/w/Home

Il "Discovery API" sarebbe quella di ascolto sulla porta DHCP 68 quando la fotocamera tenta di connettersi alla rete. Prenderò semplicemente una traccia di Wireshark o useremo lo strumento ip-scan sopraindicato.

+0

Usa DHCP. Sembra che questo metodo funzionerebbe solo se eseguo il programma quando la videocamera si connette, e il contrario? Nel mio caso, la fotocamera sarà venduta ad un cliente insieme al software, e mentre la fotocamera sarà probabilmente collegata sempre, il software potrebbe non farlo. Spero di poter creare una funzione di autodiscovery per evitare gran parte del problema con i client che non configurano correttamente la fotocamera. –