1、簡單網絡管理協議(SNMP,Simple Network Management Protocol)構成了互聯網工程工做小組(IETF,Internet Engineering Task Force)定義的Internet協議簇的一部分。
1.做用:
想象一個由服務器,工做機,三層交換機等設備組成的網絡。若是我想在工做機中,經過一種方式可以查詢三層交換機下接入設備的ip,mac等信息,怎麼作到呢? 我想知道服務器當前運行了多少天,難道必須遠程登陸主機才能知道嗎?固然不用,咱們能夠簡單的發送一些事先協定好的數據給服務器,服務器也會按規定的數據格式返回本身的信息。這個規定好的數據格式就是SNMP。其目標是管理互聯網上衆多廠家生產的軟硬件平臺。經過SNMP能夠讀取設置任何支持SNMP協議的各類設備。
2.用法:
想要體驗snmp協議提供的功能,可使用開源的
Net-snmp,它支持unix,unix-like,windows多種操做系統,提供命令行形勢的調用,或者c和perl形勢的lib。
windows下還有專門的snmp API能夠調用,很是方便啊。
經常使用的 api 包括 SnmpMgrOpen(),SnmpMgrClose(), SnmpMgrRequest() , 能夠從網上搜索相關資料學習。
3.原理:
兩個概念:
OID項:是每一個設備某一參數的身份證號,有點相似操做系統中的 「路徑」,好比 /usr/bin/ping
MIB庫:保存了該參數的名稱、類型、取值意義等各項細節描述。
四個操做:
GET:獲取指定 OID 值。
GETNEXT:讀取當前OID 的下一個OID值,並將其做爲新的「當前OID」。以達到只記一個OID即可遍歷全部值的功能。
SET:設置指定OID值。
TRAP:用於設備主動向監控程序反饋結果,避免監控程序不停輪詢,也能及時獲得敏感數據結果。
2、
網絡基本輸入輸出系統
(
NetBIOS
:Network Basic Input/Output System
)的縮寫
1.做用:
經過NetBIOS協議,能夠讀取 windows 主機用戶名列表,共享目錄名列表,級名列表,時間服務類型以及 MAC地址。
咱們經常使用的windows系統在局域網中共享文件的功能就是利用NetBIOS協議實現的。
好比,能夠打開網上鄰居,找到當前網絡中的機器,並查看其中的共享文件。
也能夠在開始-》運行 窗口,輸入 \\192.168.1.10\shareDirectory 訪問共享文件,而若是要把其中的 IP 192.168.1.10 換成目標機器的主機名稱(NetBIOS名),也是能夠正常訪問的,這個功能也是依靠NetBIOS完成。(注:至於具體文件傳輸時使用的什麼的數據協議,我還沒查到相關資料,不太肯定)
2.用法:
共享文件很簡單,右鍵文件夾,屬性,共享就能夠了。或者打開「網上鄰居」,也能看到局域網中全部的主機(啓用NetBIOS,併成功在主瀏覽服務器中註冊)
開源界有一個叫作
nbtscan 的命令行程序,能夠獲取NetBIOS信息獲取,支持windows,linux。
Windows中還提供 nbtstat 命令查詢涉及NetBIOS信息的網絡機器(windows下的nbtscan也是基於此完成)。
nbtstat -n 查看本機NetBIOS信息
nbtstat -A 192.168.1.106 查看指定IP的 NetBIOS 信息
3.原理:
咱們只要在本身的電腦上輸入一條命令就能看到局域網中,其餘電腦的詳細信息,甚至能看到其共享文件列表。這是怎麼作到的呢?
在一個域裏面有一臺主瀏覽器,主瀏覽器負責建立和維護網絡共享資源列表。
當網絡中有一臺電腦(非瀏覽器)開機時,會首先給主瀏覽器發送一個登錄請求,主瀏覽器接受請求後,自動把此電腦信息加入共享資源列表,此時經過網上鄰居就能看到這臺開機的電腦信息了。
當這臺電腦關機時,一樣會發送一個登出消息,這時網上鄰居中也就看不到這臺電腦了;可是若是這臺電腦是非正常關機,那麼就會出現,能夠在網絡鄰居中看到,但卻沒法訪問此電腦的共享資源。(通常,主瀏覽器須要連續三次,累計12*3=36分鐘沒有收到某臺計算機的仍然正常運行的信息時,才認爲該 主機已經關機)
主瀏覽器是由競選產生,主瀏覽器工做期間,共享資源列表的維護工做有主瀏覽器完成,但主瀏覽器會定時(15分鐘)將整個列表複製給被瀏覽器。
上述例子中,網上鄰居的共享資源功能只是NetBIOS衆多功能的一種。
參考資料:
netbios編程實例