基于Visual Basic 的IP查询与设置程序的设计与实现
2018-05-28廖艺咪
廖艺咪
摘要:随着网络的高速发展,局域网规模在不断地扩大,用户规模也在不断增加,为了方便网络管理员做好局域网的网络规划和IP划分,方便计算机使用者对计算机的IP进行设置,该文通过Visual Base开发工具,使用ACCESS数据库,编程实现了对IP地址的查询和设置的小程序。通过这个小程序可以大大减少局域网内的IP冲突,确保局域网网络的正常、高效运行,提高用户的网络服务体验。
关键词:Visual Base;access数据库;IP地址
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)09-0079-02
1 背景
DHCP是一个成熟的用于分配IP地址的协议,计算机的IP地址也可以设置成自动获取,当计算机启动时,会通过DHCP协议和服务器交互,服务器再分配给计算机一个网段中尚未使用的IP地址,因此使用DHCP不会造成IP地址冲突。但是当局域网中某些计算机的IP地址设置成了固定IP,就有可能会产生IP冲突的问题。在局域网中当用户规模比较大的时候,排查冲突检测是比较困难的。
计算机的IP地址也可以通过手动设置,但是对于有些计算机基础比较薄弱的使用者来说,设置“IP地址”,“子网掩码”,“默认网关”等这些参数还是比较困难的。
2网络划分和IP地址规划
IP地址是指互联网协议地址,是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。对于一个大的虚拟局域网,根据网络的规划,可以在交换机通过软件把一个大的局域网划分成若干个小的虚拟局域网,这样有利于我们的做好网络的维护管理和合理配置IP资源。根据实际情况对局域网络进行IP地址规划,以一个校园网的局域网为例进行网络划分,如表1所示。
3 数据库的选择和设计
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。目前比较流行的关系型数据库有ACCESS,SQL Server,Orcal,Mysql等。SQL Server,Orcal 等数据库属于客户/服务器数据库,常用于大型的信息管理系统,在对用户的信息交互和对数据的计算、处理比较有优势。Access属于桌面数据库的一种,桌面数据库适用于小型的、单机的应用程序,它只提供数据的存取功能,但是它不需要网络和服务器,实现起来比较方便。本程序实现只需要单机操作,所以选择Access作为数据库。
在数据表的设计过程中,为减少数据输入错误,并能使数据库高效工作,表设计遵循一定原则对信息进行分类和规范化设计,以消除表中存在的冗余信息,保证一个表只围绕一个主题,并使数据表容易维护。在表的设计过程中始终遵循每个数据表应该只包含关于一个主题的信息和数据表中不应包含重复信息的原则。网络管理员在网络划分和IP地址规划好之后,通过Access数据库对每个用户名或者工号对应好固定的IP地址。通过分析得出程序所需要的数据表如表2所示。
建筑类别表(t_floor)。建筑类别表主要用于保存建筑物的id,建筑名称,建筑编号见表3所示。
IP规划表(t_ip)。IP规划表主要用于保存建筑物的id, 用户名/工号,IP地址,见表4所示。
4 界面设计
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易地使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。本程序的界面设计如图1所示:
Visual Basic提供了可视化的设计平台,所以开发人员在设计界面时候不需要编写大量的代码,只需要从工具箱中添加所需要的对象,并对对象的相关事件进行编码,最后可以通过编译生成exe文件。客户端用户在使用本程序时首先需选择所在的建筑楼,填写用户名/工号,点击查询按钮,就可以查询出对应的IP地址,子网掩码,默认网关,首选的DNS服务器,备用的DNS服务器,然后通过一键设置,就可以把对应的网络参数设置到本计算机。Form窗体的控件描述如表5所示。
5 程序设计与关键代码的实现
5.1 查询功能的实现
Visual Base可以通过Jet引擎对Access数据库进行连接操作,password为数据库的密码,+_filePath为文件的路径名称,并且可以通过App.Path获得当前目录。然后根据用户选择的建筑楼和用户名/工号,点击查询可以获得当前端口号所对应的IP地址,子网掩码,默认网关和DNS服务器。具体SQL查询语句代码如下:
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设置的实现
GetObject([pathname],[class])函数可返回对文件中 Automation对象的引用,通过objWMIService对象并用GetObject方法返回的句柄赋值给它,再连接到本地计算机上的root\ cimv2命名空间。Win32_NetworkAdapterConfiguration
是管理基于Windows操作系统的TCP / IP网络配置一个最有用的WMI类,这个类有很多属性,通过改变这些属性就可以改变计算机网络适配器的IP,子网掩码,网关等配置。部分代码如下:
rtnIP= objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
rtnGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
rtnDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
如果設置属性的返回值rtnIP,rtnGateways,rtnDNS为0则分别表示IP地址和子网掩码,默认网关和DNS设置成功。
6 结束语
本文通过对局域网进行网络规划和IP地址划分,采用Visual Base程序开发工具,通过编程实现了查询和一键设置IP地址的小程序,大大减小了局域网内用户IP地址冲突,提高了用户的网络体验。
参考文献:
[1] 谢希仁. 计算机网络教程[M].2版. 北京: 人民邮电出版社, 2006.
[2] 雷景生, 叶文, 楼越焕. 数据库原理及应用[M]. 北京: 清华大学出版社, 2015.
[3] 刘钢. Visual Basic程序设计与应用案例[M]. 北京: 高等教育出版社, 2004.
[4] 麦永浩, 姚秋凤, 吴燕波. Visual Basic 6.0程序设计实训教材[M]. 北京: 清华大学出版社, 2015.
[5] 李禹生, 廖明潮. Access数据库技术[M]. 北京: 北京交通大学出版社, 2006.