利用delphi实现网络监控系统

利用delphi实现网络监控系统

ID:8144364

大小:27.73 KB

页数:20页

时间:2018-03-07

利用delphi实现网络监控系统_第1页
利用delphi实现网络监控系统_第2页
利用delphi实现网络监控系统_第3页
利用delphi实现网络监控系统_第4页
利用delphi实现网络监控系统_第5页
资源描述:

《利用delphi实现网络监控系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、利用Delphi实现网络监控系统利用Delphi实现网络监控系统利用Delphi实现网络监控系统摘要本文详细阐述了如何用DELPHI开发网络实时监控系统,该系统可使网络管理员随时监控到网络中任何一台计算机的操作状态,若该机有违规行为,可通过本系统采取措施禁止其操作,还实现了程序的隐藏、托盘图标、加入注册表自动启动项等技术。关键词网络WINSOCKETTCP/IP控件一、问题提出现在拥有校园网和网络教室的学校越来越多,网络管理和控制成了问题,当然有许多软件可以实现,但那是要钱的,并且不便宜,至少是买一台电脑的钱,而且许多功能教育界用不到。有意思的是:许多黑客软件可以完成网络监控任务,如:"冰河"

2、,并且不要钱,但不幸的是:用了黑客程序你不就不能上因特网了。所以,自己动手设计网络监控系统是一个不错的选择,因为现在有了许多功能强大的可视化开发工具。我用DELPHI完成了一个监控系统("大眼睛"),经过实验,效果不错,并且完成了托盘图标、驻留端程序隐藏、修改注册表使程序自动启动等技术。系统的两个可执行文件经过pecompact处理,只有150K大小,也无需什么动态连接库。下图是软件运行效果图,下面就把设计思路介绍给您。二、实现的原理WINSOCK是一组API,用于在INTERNET上传输数据和交换信息。用它编程本来是很麻烦的,但在DELPHHI中并不需要直接与WINSOCK的API打交道,因

3、为TclientSocket和TserverSocket元件封装了它的大部分API,使得对WINSOCK的访问大大简化。SOCKET是网络通信的基本构件,是可以被命名和寻址的通信端点,使用中的第一个SOCKET都有其类型和一个与之相连的进程。SOCKET存在于通信区域中,通信区域也叫地址族,是一个抽象概念,主要用于将通过SOCKET通信线程的共有特性综合在一起。SOCKET通常只与同一区域中的SOCKET交换数据,也有可能跨区域通信,但这只是在执行了某种转换进程后才能实现。要通过网络传输数据,至少需要一对SOCKET。其中,一个SOCKET在客户端,另一个SOCKET在服务器端。一旦客户端和服

4、务器端都接通了SOCKET,它们之间就可以相互通信,其连接是建立在TCP/IP协议基础上的,同时也支持其他相关协议,如XNS、DECNET及IPX/SPX等。本系统就是基于上述原理的,它由两部分组成:驻留端和控制端。驻留端放在需要监控的机器上,WINDOWS启动时自动运行,并且要很好的隐藏起来:不出现的任务栏上,当用户按下CTRL+ALT+DEL时,也不能从任务列表中发现。控制端放在管理员的机器上,管理员通过指令可以观察或控制被监控的机器。指令有五个:截取屏幕:可以观察到被控机的当前屏幕,看操作员在干什么。远程关机:可以关闭被控的计算机。远程重启:可以重新启动被控的计算机。锁定机器:封锁被控机

5、的操作,键盘、鼠标操作都无效。机器解锁:解除对被控机的封锁。三、代码编写1、控制端主窗体设计如效果图,各控件名称如下表:名称控件类型标题用途HscrollBTScrollBar;滚动图像VScrollBTscrollBar滚动图像Label1Tlabel显示文字IpboxTcomboBox显示IP地址列表RadioGroup1TRadioGroup美化界面CutsTradioButton截屏选择ClomaTradioButton关机选择RestartTradioButton启动选择LockTradioButton锁定选择UnlockTradioButton解锁选择Button1Tbutton添

6、加IP地址Button2Tbutton执行指令Button3Tbutton关闭界面Button4Tbutton连接监控端ImPanelTPanel美化界面ImageTimage显示图像Panel1TPanel显示状态KzTclientSocket建立连接tccdTPopupMenu弹出菜单控制端代码不太复杂,主要在为了显示从被监控机器传过来的数据时有点复杂,下面单独说明一下:procedureTForm1.kzRead(Sender:TObject;Socket:TCustomWinSocket);varbuf:array[0..buffer-1]ofchar;//定义一个缓冲区,大小为204

7、8字节temp:integer;begintemp:=socket.ReceiveLength;//得到传来数据的长度panel1.Caption:='正在接收来自'+ipbox.Text+'的图像数据,稍侯……';bmpmap.WriteBuffer(buf,Socket.ReceiveBuf(buf,temp));把缓冲区的数据写入流iftemp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。