局域网监控系统.docx

上传人:b****9 文档编号:28632470 上传时间:2023-07-19 格式:DOCX 页数:52 大小:165.98KB
下载 相关 举报
局域网监控系统.docx_第1页
第1页 / 共52页
局域网监控系统.docx_第2页
第2页 / 共52页
局域网监控系统.docx_第3页
第3页 / 共52页
局域网监控系统.docx_第4页
第4页 / 共52页
局域网监控系统.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

局域网监控系统.docx

《局域网监控系统.docx》由会员分享,可在线阅读,更多相关《局域网监控系统.docx(52页珍藏版)》请在冰豆网上搜索。

局域网监控系统.docx

局域网监控系统

中州大学信息工程学院

毕业设计(论文)

 

2009—2010学年第三学期

 

题目局域网监控系统

 

学生姓名(学号)

指导教师职称副教授

评阅教师职称

时间

中州大学信息工程学院毕业设计(论文)任务书

指导教师:

王学军职称:

副教授学生人数:

1

学生姓名、学号、专业):

曲利宾(200702131051131,信安)

毕业设计(论文)题目(来源、类型)

局域网监控系统(B、X)

毕业设计(论文)工作内容与基本要求(目标、任务、途径、方法、成果形式,应掌握的原始资料(数据)、参考资料(文献)以及设计技术要求、注意事项等)

为高效、便利的进行局域网监控,研制基于UDP协议,该系统功能如下:

1.注册、修改个人资料功能。

2.对客户端数据进行选择性的过滤

3.用户资料管理

4.管理员权限管理

5.用户桌面的信息

本系统采用VC6.0+Acess2000进行开发。

希望能支持多方面问卷、有用户交流页面(论坛或留言板)

在研制中希望能体现VC++的独特优点,也希望能在居于网的安全性上有所研究

教研室审批意见:

 

审批人签名:

备注:

(1)来源:

A—教师拟订;B—学生建议;C—企业和社会征集;D—实习单位提供

(2)类型:

X—真实课题;Y—模拟课题;Z—虚拟课题

中州大学信息工程学院设计(论文)开题报告

课题名称:

局域网监控系统

指导教师:

王学军职称:

副教授学生人数:

1人

学生姓名(学号、专业):

姓名:

曲利宾学号:

200702131051131专业:

信息安全技术

开题报告内容:

设计的目的及意义:

随着信息化的不断扩展,大部分企业都采用计算机来管理自己的财务、商业机密等别的业务。

但是并不是每个用计算机的员工,都能在上班时间充分的利用计算机干自己的工作。

即便是制定了相关的规章制度还是不能约束其行为。

那么局域网监控系统,完全可以起到约束的作用。

该系统可以实时的对局域网内的每台计算机进行屏幕监控。

设计的要求:

(1)学会如何分割UDP数据报;

(2)学会发送和接受UDP数据报;(3)学会自定义控件;(4)学会抓取屏幕(5)学会ADO技术对数据库操作

预期成果:

(1)将客户端隐藏,并且不断向服务器端发送屏幕信息;

(2)通过发送指令来控制客户端发来屏幕信息的位置;(3)通过ADO技术实现对ACCess数据库操作

时间安排:

9月20号-----10月15号熟悉课题的基本要求,查阅相关的资料,初步拟定设计的整体方案,完成开题报告;10月16日-----11月2号将监控系统的客户端完成,并对客户端进行试验总;11月2日-----11月13号将服务器端完成,对数据的操作进行总结,以及整个毕业设计的完成。

在王老师的指导下,综合我们以前所学的专业知识及查找的相关资料,能够在预期的时间内完成整个网站和论文。

指导教师签名:

日期:

备注:

(1)来源:

A—教师拟订;B—学生建议;C—企业和社会征集;D—实习单位提供

(2)类型:

X—真实课题;Y—模拟课题;Z—虚拟课题

摘要

Internet在我国刚刚起步时,上网人群主要是从事IT技术的专业人员,年龄段多是中年人,但是随着Internet技术的快速发展,我国的上网人群年龄逐年增多,不仅包括中年人,青少年及老年人在上网人群的比重不断增加。

Internet上丰富的资源给人们带来了很多的方便,但是也存在许多不良的信息危害青少年的健康,一些家长担心青少年上网会影响其学习。

局域网监控系统能够将局域网中的某一台计算机的屏幕信息发送到服务器端,家长可以随时了解青少年浏览的网页信息,对青少年上网起到监督作用。

本文首先介绍了问题的背景,接着提出问题,并针对具体项目展开需求调查分析;再基于需求设计出具体的方案;然后对整个系统进行了详细的分析和设计,在设计与实现过程中,结合源代码具体的描述出整个项目的开发过程;最后对整个系统进行测试得出测试结论。

关键字:

屏幕监控;数据过滤

 

Abstract

TheInternetinChinahasjuststarted,ITismainlyengagedintheInternetpopulationtechnologyprofessionals,theageismoremiddle-aged,butwiththerapiddevelopmentofInternettechnology,onlinepopulationincreasedyearbyyear,notonlyincludeage,teenagersandtheelderlyinmiddle-agedpeopleincreasetheproportionofInternet.AbundantnaturalresourcesintheInternethasbroughtpeoplealotofconvenience,buttherearealsomanybadinformationofhealthhazards,someparentsteenagersaboutteenagerswillaffecttheInternetlearning.LANmonitoringsystemcanbeacomputernetworkofthescreenmessagestotheserver,parentscanunderstandteenagerswebpageforteenagersonlineinformation,playsupervision.

Thispaperfirstlyintroducesthebackground,andthenputforwardquestions,andinthelightofspecificprojectondemandsurveyanalysis,Basedonthespecificrequirementstodesigntheplan,Thenthewholesystemtocarryonthedetailedanalysisanddesign,designandimplementationprocess,combinedwithaspecificdescriptionofthesourceofthedevelopmentprocessofproject,Finallytothewholesystemtestthattestconclusions.

Keywords:

MonitorscreenDatafiltering

第一章绪论

§1.1问题背景

Internet在我国刚刚起步时,上网人群主要是从事IT技术的专业人员,年龄段多是中年人,但是随着Internet技术的快速发展,我国的上网人群年龄逐年增多,不仅包括中年人,青少年及老年人在上网人群的比重不断增加。

Internet上丰富的资源给人们带来了很多的方便,但是也存在许多不良的信息危害青少年的健康,一些家长担心青少年上网会影响其学习。

局域网监控系统能够将局域网中的某一台计算机的屏幕信息发送到服务器端,家长可以随时了解青少年浏览的网页信息,对青少年上网起到监督作用。

§1.2研究范围及技术要求

§1.2.1研究范围

1.设计该系统的功能模块划分,使用Acesss2003设计出该系统的数据库。

2.参考实际局域网监控系统,完成对系统的需求分析及设计文档。

3.根据需求分析及设计文档完成代码编制。

§1.2.2技术要求

1.功能模块划分合理。

2.数据库设计满足功能要求。

3.采用UDP协议进行数据传输。

4.对客户端的数据进行过滤。

5.建立数据库访问接口类,实现对数据库的访问。

6.实时抓取客户端的屏幕信息。

 

 

第二章系统设计

§2.1需求分析

局域网监控系统主要是对计算机屏幕信息进行实时监控。

因此局域网监控系统需要实现屏幕信息的时时发送和接受。

由于屏幕信息需要时时显示,因此信息的传输速度要快,屏幕信息要时时发送。

为此,选择UDP协议进行传输。

为了防止服务器端随意的接收客户端发来的数据报,服务器端需要对发来的数据报进行过滤,只有是制定的客户端才接收数据。

§2.2系统目标

本系统属于小型的局域网监控系统,可以对某一台计算机进行屏幕监控。

本系统主要实现一下目标:

1.系统采用人机交互的方式,界面美观友好。

2.屏幕信息需要时时显示,网络延时不能大于1秒。

3.服务器端可以随时运行,只要客户端运行,就能够显示屏幕信息。

4.系统运行时占用内存不能大于10MB,以免影响系统的性能。

5.客户端运行时需要隐藏显示窗口,其感觉不到在运行。

§2.3系统功能结构

局域网监控系统功能结构图如下所示。

§2.3系统预览

局域网监控系统分为客户端和服务器端两部分,其中客户端运行时将窗体隐身,服务器端主要有四个窗体组成,分别为主窗体、操作员管理窗体、系统登录窗体、系统设置窗体。

其中,主窗体用于接收并显示屏幕信息。

操作员管理窗体用于添加、修改、删除操作员信息,

系统登录窗体用于系统在启动时验证用户身份。

系统设置窗体用于设置客户端IP。

主窗体

系统登录窗体

操作员管理窗体

系统设置窗体

§2.4业务流程图

§2.5程序运行环境

本系统对运行环境有一定的要求,具体如下:

1、系统开发平台:

MicrosoftVC6.0.

2、系统开发语言:

C++

3、数据库软件系统软件:

MicrosoftAcess2003

4、运行平台:

WindowsXP

5、分辨率:

最佳效果1024*1280像素

§2.5数据库设计

1、数据库分析

在开发局域网监控系统时,使用数据库主要用于记录操作员信息及客户端信息,系统设计的数据量比较小,因此本系统采用的MicrosoftAccess2003作为后台数据库,数据库名字为db_Video,其中包含了2张表

2、数据库概念设计

数据库概念设计是根据各个模块的需求“抽象”出数据实体的过程,也就是宏观上用文字、图表描述数据表的过程。

为了增加系统的安全性,服务器端设置了登录窗口,在系统启动时弹出该窗口,要求用户输入操作员名称和密码。

其中用户的操作员名称和密码信息存储在数据表中。

这样在系统登录模块就需要一个操作员信息实体。

为了过滤服务器端接受的数据报,时期值接收制定客户端发来的数据,需要存储客户端IP,为此,需要单独设计一个客户端信息实体对象。

第三章客户端设计

§3.1客户端模块概述

局域网监控系统分为客户端和服务器端两大模块,其中,客户端的主要作用是时时抓取本机的屏幕信息,将其分成多个数据报,发送到服务器端。

为了保证屏幕信息能够完整的发送到服务器,客户端在发送一个数据报后,需要等待服务器端发来的确认信息,然后继续发送下一个数据报。

§3.2客户端技术分析

客户端要实现屏幕信息的发送,要解决两个关键问题:

一是获取屏幕信息,将其转换为位图格式;二是将位图信息发送到服务器。

一、将屏幕信息转换为位图格式

CDC*pDeskDC=GetDesktopWindow()->GetDC();//获取桌面画布对象

CRectrc;

GetDesktopWindow()->GetClientRect(rc);//获取屏幕的客户区域

intwidth=300;//获取屏幕的宽度

intheight=300;//获取屏幕的高度

CDCmemDC;//定义一个内存画布

memDC.CreateCompatibleDC(pDeskDC);//创建一个兼容的画布

CBitmapbmp;

bmp.CreateCompatibleBitmap(pDeskDC,width,height);//创建兼容位图

memDC.SelectObject(&bmp);//选中位图对象

BITMAPbitmap;//定义位图信息

bmp.GetBitmap(&bitmap);//获取位图信息

memDC.BitBlt(0,0,width,height,pDeskDC,m_X,m_Y,SRCCOPY);//将屏幕信息输出到位图

二、根据位图对象获取位图信息

一个位图文件通常有“位图文件头”、“位图信息头”、“调色板”和“实际位图数据”4个部分组成。

其中“位图文件头”包含BMP图像文件的类型、显示内容、位图标记、位图大小等信息,在程序中使用BITMAPFILEHEADER结构来表示。

“位图信息头”和“调色板”2个部分描述了位图的宽度、高度、是否压缩、位图颜色等信息,在程序中使用BITMAPINFO结构描述。

由于程序发送的位图不是以文件形式发送的,只需要发送位图位图信息头、调色板和实际数据就可以了,因此不需要位图文件头。

intpanelsize=0;//记录调色板大小

if(bitmap.bmBitsPixel<16)//判断是否为真彩色位图

panelsize=pow(2,bitmap.bmBitsPixel*sizeof(RGBQUAD));

BITMAPINFO*pBInfo=(BITMAPINFO*)LocalAlloc(LPTR,sizeof(BITMAPINFO)+panelsize);

pBInfo->bmiHeader.biBitCount=bitmap.bmBitsPixel;//设置位图颜色用到的位数

pBInfo->bmiHeader.biClrImportant=0;//指定显示位图颜色的种类,如果值为0,所有的颜色种类都需要

pBInfo->bmiHeader.biCompression=0;//指定位图的压缩类型--“该语句=0”说明改为图不进行压缩

pBInfo->bmiHeader.biHeight=height;//指定位图的高度

pBInfo->bmiHeader.biPlanes=bitmap.bmPlanes;//为目标设备指定调色板的数量,且该值只能是1

pBInfo->bmiHeader.biSize=sizeof(BITMAPINFO);//设置BITMAPINFO结构大小

pBInfo->bmiHeader.biSizeImage==bitmap.bmWidthBytes*bitmap.bmHeight;//设置图像的大小

pBInfo->bmiHeader.biWidth=width;//指定位图的宽度

pBInfo->bmiHeader.biXPelsPerMeter=0;//目标设备的水平分辨率

pBInfo->bmiHeader.biYPelsPerMeter=0;//目标设备的垂直分辨率

m_X=m_RecX;

m_Y=m_RecY;

三、将位图信息发送到服务器

因为将图片信息传送到服务器端要求的实时性比较强,所以采用UDP协议将位图信息发送到服务器

§3.3客户端实现过程

1、创建一个基于对话框的工程,名称为Client。

2、在Stafx.h文件中引入套接字库。

3、在应用程序类的Instance函数中初始化套接字

WSADATAdata;

WSAStartup(2,&data);

4、改写应用程序类的虚方法ExitInstance

intCClientApp:

:

ExitInstance()

{

WSACleanup();//清理套接字资源

returnCWinApp:

:

ExitInstance();

}

5、在对话框类中添加如下成员变量

SOCKETm_Socket;//客户端套接字

CStringm_ServerIP;//服务器IP

intm_X,m_Y;//抓起屏幕的起始坐标

WORDm_RecX,m_RecY;//收到服务器发来的抓起屏幕的起始坐标

BOOLm_Confirm;//确认信息

intm_FrameIndex;//记录索引

intcount;//每一个位图分报的数量

intbmpsize;//位图的实际大小

intmod;//记录余数

char*pSendBuf;//发送缓冲区指针

char*Head;//临时指针

sockaddr_inaddrl;//套接字地址

BOOLm_Received;//是否受到服务器发来的确认信息

intm_Counter;//计数器

6、在对话框的初始化函数中,创建套接字将其绑定到指定位置,并初始化相应的成员变量

BOOLCClientDlg:

:

OnInitDialog()

{

hostent*phost=gethostbyname("");

char*localIP=inet_ntoa(*(structin_addr*)*phost->h_addr_list);

sockaddr_inaddr;

addr.sin_family=AF_INET;

addr.sin_addr.S_un.S_addr=inet_addr(localIP);

addr.sin_port=htons(5001);

m_Socket=socket(AF_INET,SOCK_DGRAM,0);

if(m_Socket==INVALID_SOCKET)

{

MessageBox("套接字创建失败!

");

}

if(bind(m_Socket,(sockaddr*)&addr,sizeof(addr))==SOCKET_ERROR)

{

MessageBox("绑定套接字失败!

");

}

m_ServerIP="127.0.0.1";

GetPrivateProfileString("ServerInfo","IP","127.0.0.1",m_ServerIP.GetBuffer(0),MAX_PATH,"./server.ini");//读取INI配置文件

WSAAsyncSelect(m_Socket,m_hWnd,CM_RECEIVED,FD_READ);//该函数的功能是在套接字m_Socket上,看是否有读取事件发生如果有,向窗口句柄为m_hWnd的窗口发送CM_RECEIVED消息

m_X=m_Y=0;

m_RecX=m_RecY=0;

m_Confirm=true;

pSendBuf=newchar[1024*1024*2];

Head=pSendBuf;

Onok();

m_Received=false;

m_Counter=0;

SetTimer(1,1000,NULL);

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

7、自定义一个消息,当套接字接到数据时,将该消息发送到主窗口

#defineGraphSize1024

#defineCM_RECEIVEDWM_USER+200//自定的消息CM_RECEIVED

8、添加OnReceived()方法,该方法的作用是:

接收服务器端发来的确认信息和控制信息

voidCClientDlg:

:

OnReceived()

{

char*pData=newchar[1024];

memset(pData,0,1024);

sockaddr_inaddr;

intfactsize=sizeof(sockaddr);

intret=recvfrom(m_Socket,pData,1024,0,(sockaddr*)&addr,&factsize);

if(ret!

=-1)//判断是否接收成功

{

if(ret==4)//方向指令

{

m_RecX=*(WORD*)&pData[0];//填充屏幕x坐标

m_RecY=*(WORD*)&pData[2];//填充屏幕y坐标

}

if(ret==8)//确认指令

{

m_Received=TRUE;

m_FrameIndex+=1;//将发送的数据报的序号加1

if(m_FrameIndex

SendData(m_FrameIndex,mod,bmpsize,count,pSendBuf,addrl);

else

Onok();//重新开始发送数据

}

}

delete[]pData;

}

9、将CM_RECEIVED消息和处理该消息的函数OnReceived关联起来

ON_MESSAGE(CM_RECEIVED,OnReceived)

10、添加SendData方法,该方法的作用:

将数据封成数据报,将该数据报发送到指定地址

intCClientDlg:

:

SendData(intindex,intmod,intbmpsize,intframes,char*pSendBuf,sockaddr_in&addr)

{

/*

index表示数据包的序列号;mod表示余数;bmpsize表示数据报中位图数据的大小

frames表示总的发送次数;addr表示服务器地址;pSendBuf表示要发送数据的缓冲区

*/

char*pPackage;//定义一个数据报指针

intpacksize=0;//初始化数据报的大小

if(mod==0||index!

=frames-1)//计算数据报的大小

packsize=2+2+bmpsize+4+2+2+4;

else

packsize=2+2+mod+4+2+2+4;

pPackage=newchar[packsize];

memset(pPackage,0,packsize);

*(WORD*)&pPackage[0]=index;//填充序号

if(index!

=frames-1)//填充结束标记

*(WORD*)&pPackage[2]=0;

else

*(WORD*)&pPackage[2]=1;

pSendBuf+=index*bmpsize;//定位数据

memcpy(&pPackage[4],pSendBuf,packsize-16);//填充位图数据

*(int*)&pPackage[packsize-12]=bmpsize;//填充位图大小

*(WORD*)&pPackage[packsize-8]=m_X;//填充屏幕x坐标

*(WORD*)&pPackage[packsize-6]=m_Y;//填充

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1