动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   .Net → 阅读文章

 使用.NET开发扫描电脑中服务的工具

作者来源: 
阅读 数 323 人次 , 2006-4-20 9:25:00 

在大中型企业信息系统中,对客户端PC的管理,往往是容易出现问题的环节。 因此,很多大公司引入了各种分布式的管理系统,例如防病毒方面的Norton AntiVirus,BlackICE防火墙,微软的 SMS (System Management Server),等等,这些系统都会在客户端的系统安装相应的客户端软件,一般都是以服务的形式出现,但是由于种种原因,这些服务会停止运行或者该客户机根本没有安装这些客户端服务,这样管理系统就出现了疏漏,有可能造成问题,如因无法防御病毒而成为病毒源,无法为该客户端发布软件,无法管理客户PC等等。在此,我们提供一个方案,可以定时按照IP地址扫描网络,报告出那些系统的特定的服务的状态。

这个方案使用了Microsoft.NET技术,同时也用到了.NET Framework中的,ADO.NET ,WMI management,XML。其核心是一个由VB.NET写的程序以及它的两个配置文件,配置文件为XML格式,该程序按IP扫描网络,得到每个系统的服务 的状态,如果IP地址没有对应系统,则忽略该IP,针对没有安装服务或服务停止的系统我们在另一个线程中运行NBTSTAT命令,得到其机器名,用户名,MAC地址域等信息,以便我们找到机器解决问题。其次为了保存扫描的结果,我们需要一个很小的数据库MS-Access或MS-SQL server都可以,本文使用SQL2000 。最后为了呈现出扫描的结果,以便我们采取行动,这里我们使用网页的形式把数据库中的结果展现出来。

1. VB.NET程序

该程序使用两个XML格式的配置文件,当程序启动时会读入这些配置。其中一个文件定义了需要扫描的网段,包括排除在外的地址段。另一个文件定义了连接数据库的信息,以及数据表的定义。这两个文件的内容如下:

<IPLIST>
<IP LANID="192.168.100." ><EXP L="1" H="30"/></IP>
<IP LANID="192.168.101." />
<IP LANID="192.168.102." />
<IP LANID="192.168.103." />
<IP LANID="192.168.104." ><EXP L="1" H="40"/></IP>
</IPLIST>

该文件定义将要扫描5个网段,其中两个网段有些地址需要排除在外(分配给打印机等设备),对于192.168.100段,我们排除从1到30,对于192.168.104段我们排除1到40。


DBServer
DB
REPORT
REPORT
SERVICE


该文件定义了连接数据库所需的信息。
: SCANSERVICE数据库的服务器名
: SCANSERVICE数据库名
:用于更新SCANSERVICE数据库的数据库用户名
:用于更新SCANSERVICE数据库的数据库用户的密码
:该TAG的 inner 定义了我们希望扫描的Service的名字,这里我们假定希望扫描服务名为SERVICE
该TAG的属性定义了数据库中表名,该表用于保存扫描结果

以下是程序代码:



可以利用如下命令在DOS窗口启动该程序。
Scanservice -i iplist.xml -d dbinfo.xml


2. SCANSERVICE 数据库

该数据库保存保存程序运行结果,以便用WEB等方式展现出来。以下是建立表的脚本,包含域名,用户名,机器名,IP以及服务状态。
CREATE TABLE [dbo].[Service] (
[IP] [varchar] (50) NULL ,
[状态] [varchar] (50) NULL ,
[用户名] [varchar] (50) NULL ,
[机器名] [varchar] (50) NULL ,
[MAC地址] [varchar] (50) NULL ,
[域] [varchar] (50) NULL ,
[超时] [varchar] (10) NULL ,
[时间安] [DateTime] (8) NULL ,
)


总结:

以上是一个完整的方法,也是比较简单明晰的解决方法,如果要求技巧和性能的话,还有一些地方可以做些改进,比如对线程池的使用。另外还有一些方面需要大家自己完成,比如将数据库中的信息以WEB的方式展现出来。
  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:VB.NET应用集锦
· 下一篇:Visual Basic.NET实现主/从数据表视图
· 开发者面临的.Net挑战(二)
· 使用Microsoft.NET Frameworks创建Windows应用程序
· ASP.NET中水晶报表的使用
· 使aspx页面能接受HTML,asp的页面传送的文件
· 简单对象协议(SOAP)简介


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077