基於W5500的NetBIOS應用實例

一 實例背景 最近一個做智能家居的朋友面臨這樣的一個煩惱,他想讓用戶通過智能手機在家裡方便地控制家居設備,又想讓用戶免除下載安裝App的麻煩,通過瀏覽器直接打開設備內嵌的網頁便可實現控制。但是設備的IP地址都是通過家裡的路由器自動獲得的,設備上又沒有屏幕來顯示其IP地址。問我有沒有辦法不輸入IP地址來實現瀏覽器訪問該設備網頁的辦法,就是類似DNS之類,但是無需連外網,只在家庭網路內能訪問即可。 這使我想起一個古老的協議,NetBIOS(Network Basic Input/Output System)。這個在上世紀80年代由IBM開發的協議,主要用於數十臺左右計算機組成的小型局域網,該協議的主要用途之一就是把計算機名稱解析為相應IP地址。如果每個設備有一個固定名字,在實現了NetBIOS的前提下,用戶在瀏覽器里輸入該設備的名字,然後通過NetBIOS解析,便可實現訪問該設備網頁的這個功能了。而且NetBIOS占用系統資源少,在單片機上運行不成問題。於是推薦這個朋友在他的設備上實現了NetBIOS協議,解決了他的煩惱。 除了智能家居,在當下物聯網時代,想必還有其他應用也會遇到類似問題,就拿手頭的WIZnet-W5500評估板實現了一下NetBIOS,希望能對做網路設備開發的朋友有所幫助。在用W5500實現之前,我們還是先在PC上看一下NetBIOS到底是一個什麼東西。  二 NetBIOS協議 我們知道在DOS 命令下可以通過PING主機名獲得另外一臺電腦的IP地址,實際上就是通過 NETBIOS進行的。在Windows操作系統中,默認情況下在安裝TCP/IP協議後會自動安裝NetBIOS。查看方法如下:本地連接屬性的中“高級TCP/IP設置”視窗中選擇“WINS”選項卡,在“NetBIOS設置”區域中就可以設置相應的NetBIOS,如圖1:   圖1 WINS下的NetBIOS設置 Ping主機名的第一個數據包就是NBNS(NetBIOS Name Server),協議包,它是 TCP/IP 上的 NetBIOS (NetBT) 協議族的一部分,它在基於 NetBIOS…

View More 基於W5500的NetBIOS應用實例