廖藝咪
摘要:隨著網(wǎng)絡(luò)的高速發(fā)展,局域網(wǎng)規(guī)模在不斷地?cái)U(kuò)大,用戶規(guī)模也在不斷增加,為了方便網(wǎng)絡(luò)管理員做好局域網(wǎng)的網(wǎng)絡(luò)規(guī)劃和IP劃分,方便計(jì)算機(jī)使用者對(duì)計(jì)算機(jī)的IP進(jìn)行設(shè)置,該文通過Visual Base開發(fā)工具,使用ACCESS數(shù)據(jù)庫(kù),編程實(shí)現(xiàn)了對(duì)IP地址的查詢和設(shè)置的小程序。通過這個(gè)小程序可以大大減少局域網(wǎng)內(nèi)的IP沖突,確保局域網(wǎng)網(wǎng)絡(luò)的正常、高效運(yùn)行,提高用戶的網(wǎng)絡(luò)服務(wù)體驗(yàn)。
關(guān)鍵詞:Visual Base;access數(shù)據(jù)庫(kù);IP地址
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)09-0079-02
1 背景
DHCP是一個(gè)成熟的用于分配IP地址的協(xié)議,計(jì)算機(jī)的IP地址也可以設(shè)置成自動(dòng)獲取,當(dāng)計(jì)算機(jī)啟動(dòng)時(shí),會(huì)通過DHCP協(xié)議和服務(wù)器交互,服務(wù)器再分配給計(jì)算機(jī)一個(gè)網(wǎng)段中尚未使用的IP地址,因此使用DHCP不會(huì)造成IP地址沖突。但是當(dāng)局域網(wǎng)中某些計(jì)算機(jī)的IP地址設(shè)置成了固定IP,就有可能會(huì)產(chǎn)生IP沖突的問題。在局域網(wǎng)中當(dāng)用戶規(guī)模比較大的時(shí)候,排查沖突檢測(cè)是比較困難的。
計(jì)算機(jī)的IP地址也可以通過手動(dòng)設(shè)置,但是對(duì)于有些計(jì)算機(jī)基礎(chǔ)比較薄弱的使用者來說,設(shè)置“IP地址”,“子網(wǎng)掩碼”,“默認(rèn)網(wǎng)關(guān)”等這些參數(shù)還是比較困難的。
2網(wǎng)絡(luò)劃分和IP地址規(guī)劃
IP地址是指互聯(lián)網(wǎng)協(xié)議地址,是IP Address的縮寫。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址,以此來屏蔽物理地址的差異。對(duì)于一個(gè)大的虛擬局域網(wǎng),根據(jù)網(wǎng)絡(luò)的規(guī)劃,可以在交換機(jī)通過軟件把一個(gè)大的局域網(wǎng)劃分成若干個(gè)小的虛擬局域網(wǎng),這樣有利于我們的做好網(wǎng)絡(luò)的維護(hù)管理和合理配置IP資源。根據(jù)實(shí)際情況對(duì)局域網(wǎng)絡(luò)進(jìn)行IP地址規(guī)劃,以一個(gè)校園網(wǎng)的局域網(wǎng)為例進(jìn)行網(wǎng)絡(luò)劃分,如表1所示。
3 數(shù)據(jù)庫(kù)的選擇和設(shè)計(jì)
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。目前比較流行的關(guān)系型數(shù)據(jù)庫(kù)有ACCESS,SQL Server,Orcal,Mysql等。SQL Server,Orcal 等數(shù)據(jù)庫(kù)屬于客戶/服務(wù)器數(shù)據(jù)庫(kù),常用于大型的信息管理系統(tǒng),在對(duì)用戶的信息交互和對(duì)數(shù)據(jù)的計(jì)算、處理比較有優(yōu)勢(shì)。Access屬于桌面數(shù)據(jù)庫(kù)的一種,桌面數(shù)據(jù)庫(kù)適用于小型的、單機(jī)的應(yīng)用程序,它只提供數(shù)據(jù)的存取功能,但是它不需要網(wǎng)絡(luò)和服務(wù)器,實(shí)現(xiàn)起來比較方便。本程序?qū)崿F(xiàn)只需要單機(jī)操作,所以選擇Access作為數(shù)據(jù)庫(kù)。
在數(shù)據(jù)表的設(shè)計(jì)過程中,為減少數(shù)據(jù)輸入錯(cuò)誤,并能使數(shù)據(jù)庫(kù)高效工作,表設(shè)計(jì)遵循一定原則對(duì)信息進(jìn)行分類和規(guī)范化設(shè)計(jì),以消除表中存在的冗余信息,保證一個(gè)表只圍繞一個(gè)主題,并使數(shù)據(jù)表容易維護(hù)。在表的設(shè)計(jì)過程中始終遵循每個(gè)數(shù)據(jù)表應(yīng)該只包含關(guān)于一個(gè)主題的信息和數(shù)據(jù)表中不應(yīng)包含重復(fù)信息的原則。網(wǎng)絡(luò)管理員在網(wǎng)絡(luò)劃分和IP地址規(guī)劃好之后,通過Access數(shù)據(jù)庫(kù)對(duì)每個(gè)用戶名或者工號(hào)對(duì)應(yīng)好固定的IP地址。通過分析得出程序所需要的數(shù)據(jù)表如表2所示。
建筑類別表(t_floor)。建筑類別表主要用于保存建筑物的id,建筑名稱,建筑編號(hào)見表3所示。
IP規(guī)劃表(t_ip)。IP規(guī)劃表主要用于保存建筑物的id, 用戶名/工號(hào),IP地址,見表4所示。
4 界面設(shè)計(jì)
VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易地使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建Active X控件,用于高效生成類型安全和面向?qū)ο蟮膽?yīng)用程序。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。本程序的界面設(shè)計(jì)如圖1所示:
Visual Basic提供了可視化的設(shè)計(jì)平臺(tái),所以開發(fā)人員在設(shè)計(jì)界面時(shí)候不需要編寫大量的代碼,只需要從工具箱中添加所需要的對(duì)象,并對(duì)對(duì)象的相關(guān)事件進(jìn)行編碼,最后可以通過編譯生成exe文件??蛻舳擞脩粼谑褂帽境绦驎r(shí)首先需選擇所在的建筑樓,填寫用戶名/工號(hào),點(diǎn)擊查詢按鈕,就可以查詢出對(duì)應(yīng)的IP地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān),首選的DNS服務(wù)器,備用的DNS服務(wù)器,然后通過一鍵設(shè)置,就可以把對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)設(shè)置到本計(jì)算機(jī)。Form窗體的控件描述如表5所示。
5 程序設(shè)計(jì)與關(guān)鍵代碼的實(shí)現(xiàn)
5.1 查詢功能的實(shí)現(xiàn)
Visual Base可以通過Jet引擎對(duì)Access數(shù)據(jù)庫(kù)進(jìn)行連接操作,password為數(shù)據(jù)庫(kù)的密碼,+_filePath為文件的路徑名稱,并且可以通過App.Path獲得當(dāng)前目錄。然后根據(jù)用戶選擇的建筑樓和用戶名/工號(hào),點(diǎn)擊查詢可以獲得當(dāng)前端口號(hào)所對(duì)應(yīng)的IP地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān)和DNS服務(wù)器。具體SQL查詢語(yǔ)句代碼如下:
select a.* from t_ip a ,t_floor b where a.floor_id=b.floor_id and a.floor_id='" + _building + "' and a.user_code=+'" +_ userCode + "'"
5.2 IP設(shè)置的實(shí)現(xiàn)
GetObject([pathname],[class])函數(shù)可返回對(duì)文件中 Automation對(duì)象的引用,通過objWMIService對(duì)象并用GetObject方法返回的句柄賦值給它,再連接到本地計(jì)算機(jī)上的root\ cimv2命名空間。Win32_NetworkAdapterConfiguration
是管理基于Windows操作系統(tǒng)的TCP / IP網(wǎng)絡(luò)配置一個(gè)最有用的WMI類,這個(gè)類有很多屬性,通過改變這些屬性就可以改變計(jì)算機(jī)網(wǎng)絡(luò)適配器的IP,子網(wǎng)掩碼,網(wǎng)關(guān)等配置。部分代碼如下:
rtnIP= objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
rtnGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
rtnDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
如果設(shè)置屬性的返回值rtnIP,rtnGateways,rtnDNS為0則分別表示IP地址和子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān)和DNS設(shè)置成功。
6 結(jié)束語(yǔ)
本文通過對(duì)局域網(wǎng)進(jìn)行網(wǎng)絡(luò)規(guī)劃和IP地址劃分,采用Visual Base程序開發(fā)工具,通過編程實(shí)現(xiàn)了查詢和一鍵設(shè)置IP地址的小程序,大大減小了局域網(wǎng)內(nèi)用戶IP地址沖突,提高了用戶的網(wǎng)絡(luò)體驗(yàn)。
參考文獻(xiàn):
[1] 謝希仁. 計(jì)算機(jī)網(wǎng)絡(luò)教程[M].2版. 北京: 人民郵電出版社, 2006.
[2] 雷景生, 葉文, 樓越煥. 數(shù)據(jù)庫(kù)原理及應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2015.
[3] 劉鋼. Visual Basic程序設(shè)計(jì)與應(yīng)用案例[M]. 北京: 高等教育出版社, 2004.
[4] 麥永浩, 姚秋鳳, 吳燕波. Visual Basic 6.0程序設(shè)計(jì)實(shí)訓(xùn)教材[M]. 北京: 清華大學(xué)出版社, 2015.
[5] 李禹生, 廖明潮. Access數(shù)據(jù)庫(kù)技術(shù)[M]. 北京: 北京交通大學(xué)出版社, 2006.