海康威视_摄像头搜索工具
攝像頭發送廣播使用的是mdns
mDNS : multicast DNS ,規范文檔地址:?http://www.ietf.org/rfc/rfc6762.txt。
在局域網內,你要通過一臺主機和其他主機進行通信,你需要知道對方的 ip 地址,但是有些時候,你并不知道對方的 ip 地址,因為一般使用 DHCP 動態分配 ip 地址的局域網內,各個主機的 IP 地址是由 DHCP 服務器來幫你分配 IP 地址的。所以在很多情況下,你要知道對方的 IP 地址是比較麻煩的。
鑒于發現這篇文章最近的瀏覽量比較多,晚上也有不少轉載,特別聲明一下,文章水平可能不大夠,只是我當時的一些理解,所以希望大家以批判的角度來看,然后又什么問題歡迎討論。真心不希望誤導大家^_^
mDNS 的工作原理
首先,在 IP 協議里規定了一些保留地址,其中有一個是 224.0.0.251,對應的 IPv6 地址是 [FF02::FB]。
mDNS 協議規定了一個端口,5353。
mDNS 基于 UDP 協議。
每個進入局域網的主機,如果開啟了mDNS服務的話,都會向局域網內的所有主機組播一個消息,我是誰,和我的IP地址是多少。然后其他也有該服務的主機就會響應,也會告訴你,它是誰,它的IP地址是多少。當然,具體實現要比這個復雜點。
比如,A主機進入局域網,開啟了 mDNS 服務,并向 mDNS 服務注冊以下信息:我提供 FTP 服務,我的IP是 192.168.1.101,端口是 21。當B主機進入局域網,并向 B 主機的 mDNS 服務請求,我要找局域網內 FTP 服務器,B主機的 mDNS 就會去局域網內向其他的 mDNS 詢問,并且最終告訴你,有一個IP地址為 192.168.1.101,端口號是 21 的主機,也就是 A 主機提供 FTP 服務,所以 B 主機就知道了 A 主機的 IP 地址和端口號了。
大概的原理就是這樣子,mDNS提供的服務要遠遠多于這個,當然服務多但并不復雜。
在Apple 的設備上(電腦,筆記本,iphone,ipad等設備)都提供了這個服務。很多Linux設備也提供這個服務。Windows的設備可能沒有提供,但是如果安裝了iTunes之類的軟件的話,也提供了這個服務。
這樣就可以利用這個服務開發一些局域網內的自動發現,然后提供一些局域網內交互的應用了。
jmDNS 是一個 JAVA 平臺的,提供 mDNS 服務的第三方庫。在這個 jar 包引入到 Android 項目里,就可以獲得 mDNS 服務了。Android 在 3.x 還是 4.x 之后已經提供局域網內自動發現的 API 了,所以不需要使用 jmDNS 第三方庫就能實現了。
下文是來自?http://www.multicastdns.org/?的說明。
Multicast DNS is a way of using familiar DNS programming interfaces, packet formats and operating semantics, in a small network where no conventional DNS server has been installed.
Multicast DNS is a joint effort by participants of the IETF Zero Configuration Networking (zeroconf) and DNS Extensions (dnsext) working groups. The requirements are driven by the Zeroconf working group; the implementation details are a chartered work item for the DNSEXT group. Most of the people working on mDNS are active participants of both working groups.
While the requirements for Zeroconf name resolution could be met by designing an entirely new protocol, it is better to provide this functionality by making minimal changes to the current standard DNS protocol. This saves application programmers from having to learn new APIs, and saves application programmers from having to write application code two different ways — one way for large configured networks and a different way for small Zeroconf networks. It means that most current applications need no changes at all to work correctly using mDNS in a Zeroconf network. It also means that engineers do not have to learn an entirely new protocol, and current network packet capture tools can already decode and display DNS packets, so they do not have to be updated to understand new packet formats.
--- EOF ---
總結
以上是生活随笔為你收集整理的海康威视_摄像头搜索工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OSPF基础知识及配置命令
- 下一篇: SQL Server不允许保存更改的解决