2012-02-06 84 views
5

我創建一個程序跟一個IP攝像機,這款機型的:網絡攝像機,如何在網絡上檢測它?

CVUL-I125

這有一個簡單的Web界面,以控制它,我已經成功地談過話,並抓取視頻並從中獲取快照。

但是,我找不到任何有關如何檢測此相機在網絡上的好文檔,以及它具有的特定IP地址。

到目前爲止,我發現它的唯一工具是捆綁的windows軟件。

我假設(希望!),有一個更好的方法,而不是遍歷範圍內的所有IP地址,並看看是否有東西看起來像那裏的相機接口。

有誰知道如何做到這一點?

這種事情有沒有已知的API?

請注意,由於它是一個IP相機,它不直接連接到我的電腦,因此沒有任何本地安裝,我可以談談。

這裏有一些更多的細節:

  • 相機和我做將被出售的軟件,這意味着我可以不依賴於客戶端發生的任何特殊類型的設置,除了工作DHCP
  • 該相機沒有我可以找到的API文檔,如果有人比我更強大的Google-fu,請指教我
  • 相機具有DHCP支持,因此它確實可以成功連接到網絡,問題是我怎樣才能可靠地找到它
  • 我不知道它是否有主機名,文檔沒有說什麼,我自己的DHCP服務器只列出它的MAC地址
+1

請注意,儘管我將對此進行編程,但我不完全確定這是一個很好的問題,但我不完全確定SU或任何其他站點是否正常河 – 2012-02-06 18:52:42

回答

6

根據你提供的這個相機的鏈接是否可以UPnP。

UPnP是具有用於設備發現/搜索的幾種方法的協議:

您的代碼必須多點傳送UDP分組作爲搜索請求。您的UPnP設備將根據配置使用UPnP搜索響應進行應答,這些響應是UDP單播數據包。

UPnP搜索響應包含一個HTTP URL,以允許檢索設備的XML描述。 HTTP URL中的主機通常是設備IP /主機名。

看看UPnP spec

你不說你正在使用的OS /語言 - API和庫,這樣只是一個小清單:

+0

這聽起來*很有希望。我根本沒有想到UPnP。我會研究這個!我會暫緩接受你的答案,直到我確認了這一點,但這看起來很有希望。 – 2012-02-06 19:24:26

+0

@ LasseV.Karlsen更新了鏈接到API /庫...... – Yahia 2012-02-06 19:28:32

+0

我將通過MonoTouch(Mono)在iOS中實現這一點,所以我可能需要使用C#語法的源代碼才能使用它。幸運的是,我可能不需要實現整個UPnP堆棧,只需要實現與發現相關的部分。 – 2012-02-07 13:34:01

0

你想要的是讀取這個網絡攝像機應該通過的DHCP選項。通常,任何消費者設備都將在DHCP數據包的選項43中輸出其供應商標識符字符串。與您的DHCP服務器連接,當攝像機連接到網絡時,您可以讓DHCP服務器向您發送通知。

對於每個DHCP供應商,此過程是不同的。你知道DHCP將在網絡中運行嗎?

否則,我建議安裝一個簡單的DHCPD。它應該很容易配置爲對適當的選項43值作出反應,並與您的應用程序交談。

+0

如果相機和軟件只在我的網絡上運行,這可能是一個很好的解決方案,但我打算銷售與相機捆綁在一起的程序,因此我不能依賴與我一起工作的DHCP服務器,至少不會它取決於客戶端具有哪種DHCP服務器和/或配置。 – 2012-02-06 19:07:50

0

聽起來像它使用DHCP(否則它不會在你的網絡上)。

我使用這個工具所有的時間:

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

「發現API」將DHCP端口68上監聽時,相機會嘗試連接到網絡。我只需要一個Wireshark跟蹤,或者使用上面提到的ip-scan工具。

+0

它確實使用DHCP。這聽起來像這種方法只會在攝像頭連接時運行程序時起作用,那麼反過來呢?在我的情況下,相機將與軟件一起出售給客戶,而相機很可能始終連接,但該軟件可能不會。我希望我可以創建一個自動發現功能,以避免客戶無法正確設置相機的大部分支持麻煩。 – 2012-02-06 19:09:42