论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>编程开发>>VB>>正文

用VB6.0实现网络实时监控系统

www.xker.com 作者:邓传军 来源:CSDN开发高手 加入日期:2006-3-24 10:56:25

【问题提问、论坛交流】计算机网络技术的日益发展和普及,为信息共享提供了一条全球性的高速通道,但目前采用的TCP/IP协议族潜在着安全漏洞,其安全机制并不健全,如何保护企业内部网络中的资源及信息不受外部攻击者肆意破坏或盗窃,是企业网络安全需要解决的重要问题当我们担心被黑客攻击或怀疑电脑被植入木马时,我们往往求助于防火墙,本系统即通过实时监控全部TCP连接的方法来实现防黑客攻击同时网络管理人员在整个网络运行期间,能否实时监控联网计算机的运行状态和操作对网络安全具有极其重要的作用.下面就以Visual Basic 6.0作为开发工具讲述两个主要模块的设计和实现

  系统概述

  该系统由两个子系统组成:服务器端系统和客户端(工作站)系统服务器端系统安装在网络管理人员的计算机上,用于实施各种对联网计算机的监控操作;客户端系统安装在每台联网的计算机上,它运行后以图标的方式出现在系统任务栏的提示区中,不影响工作站的其他操作,只用于响应服务器端的监控命令,并根据服务的需要,及时采样工作站的相应数据返回给服务器该系统的运行环境可以运行于Win98、Win95或WinNT、Win2000下在系统的开发中,引入了WINSOCK通讯控件,除此之外,为较好地实现各项监控操作,还用到了几个API函数

  系统功能

  1、监控全部TCP连接:实时监控所有服务器端口的连接情况、及时对异常连接发出警告并提示用户删除异常连接;

  2、屏幕监控:该功能允许服务器随时把被监控工作站的屏幕画面抓取到服务器中,网络管理人员对相应工作站所进行的操作一目了然,若发现有非法操作即可采取发送警告或强制措施,强迫其停止相应操作;

  3、对工作站进行锁机、关机、限制鼠标活动等;

  4、服务器和工作站之间的信息互送

  功能的实现

  1、监控全部TCP连接

  TCP/IP(Transmission Control Protocol/Internet Protocol:传输控制协议/互联网协议)是一个包括TCP、IP、 UDP、ARP、RARP和ICMP等在内的网络协议集TCP/IP经常被称为“将Internet绑定在一起的粘合剂”,它允许在空间上分离的多个信息网络连接在一起形成一个巨大的虚拟网络TCP和UDP(用户数据报协议)是两个最常用的数据传输协议,它们都使用设置监听端口的方法来完成数据传输

  在本文中讨论TCP连接通过使用TCP, Internet客户机可以打开到另一个Internet客户机的虚拟连接并传送数据流与UDP不同,TCP协议通过重传丢失的数据报保证传输的可靠性它也保证在接收端的应用程序按发送的顺序将接收到的位和字节重新组装起来以获取完整的数据

  要获得与服务器系统中全部有效的TCP连接,用到GetTcpTable这个API函数,它定义如下:

Private Declare Function GetTcpTable Lib "iphlpapi.
dll" (ByRef pTcpTable As MIB_TCPTABLE, ByRef
pdwSize As Long, ByVal bOrder As Long) As Long

  其中参数pPcpTable是已生成的 TCP连接表缓冲区的指针,参数pdwsize是缓冲区大小(当缓冲区不够大时,该参数返回实际需要的大小),参数bOrder指示连接表是否需要按“Local IP”、“Localport”、“Remote IP”、“Remote port”依次进行排序,1为按此顺序

  通过一个TIMEER控件的TIMER的事件来比较前后两个TCP连接表,我们可以立即发现异常并发出警告本系统用声音和报警标志提醒用户注意可能的外界入侵收到警告信号后,我们应首先将可疑连接删除掉,SetTcpEntry函数可以帮助我们删除可疑连接其定义为:

Private Declare Function SetTcpEntry Lib "iphlpapi.
dll" (ByRef pTcpTable As MIB_TCPROW) As Long

  其中参数pTcptable为指向tcp表行的指针然后将欲删连接的状态置为MIB_TCP_STATE_DELETE_TCB(值为12)即可删除该连接

  TIMER事件源代码:

Private Sub Timer1_Timer()
 Dim Return1 As Long, i As Long
 Dim Tmp1 As Long, Tmp2 As Long
 Dim Ip_Buf(1 To 4) As Byte
 Dim Win_Path As String, Tmp3 As String
 Return1 = GetTcpTable(TCP1, Len(TCP1), 1)
 If Last_Num_Of_Entries <> 0 And _
   Last_Num_Of_Entries <> TCP1.dwNum_Of_Entries Then
  '异常时发出警告
  Picture1.Visible = True   '警告标志
  On Error Resume Next
  Win_Path = String(145, 0)
  '利用API函数GetWindowsDirectory获得当前系统目录
  i = GetWindowsDirectory(Win_Path, 145)
  Win_Path = Left(Win_Path, i)
  '利用API函数sndPlaySound发出报警声音
  i = sndPlaySound(Win_Path + "\Media\Ding.wav", &H1)
  On Error GoTo 0
 Else
  If Picture1.Visible = True Then
   Picture1.Visible = False
  End If
 End If
 Last_Num_Of_Entries = TCP1.dwNum_Of_Entries
 Select Case Return1
  Case 0&:
   Text1 = "": Combo1.Clear
   For i = 0 To TCP1.dwNum_Of_Entries - 1
    Tmp3 = Str(i + 1) + " "
    Select Case TCP1.TCP_Table(i).dwState
     ' 显示连接状态
    Case 1: Tmp3 = Tmp3 + "CLOSED"
    Case 2: Tmp3 = Tmp3 + "LISTENING"
    Case 3: Tmp3 = Tmp3 + "SYN_SENT"
    Case 4: Tmp3 = Tmp3 + "SYN_RCVD"
    Case 5: Tmp3 = Tmp3 + "ESTABLISHED"
    Case 6: Tmp3 = Tmp3 + "FIN_WAIT1"
    Case 7: Tmp3 = Tmp3 + "FIN_WAIT2"
    Case 8: Tmp3 = Tmp3 + "CLOSE_WAIT"
    Case 9: Tmp3 = Tmp3 + "CLOSING"
    Case 10: Tmp3 = Tmp3 + "LAST_ACK"
    Case 11: Tmp3 = Tmp3 + "TIME_WAIT"
    Case 12: Tmp3 = Tmp3 + "DELETE_TCB"
    End Select
    Combo1.AddItem Tmp3 ' 填充列表以供用户删除
    ' 本地IP
    Tmp3 = Tmp3 + ":" + vbCrLf + vbTab + "Local: "
    'CopyMemory为API函数
    CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwLocalAddr, 4
    Tmp3 = Tmp3 + CStr(Ip_Buf(1)) + "." + _
CStr(Ip_Buf(2)) + "."+ CStr(Ip_Buf(3)) _
+"." + CStr(Ip_Buf(4))
    Tmp1 = TCP1.TCP_Table(i).dwLocalPort
    ' 本地端口
    Tmp2 = Tmp1 / 256 + (Tmp1 Mod 256) * 256
    ' 远程IP
    Tmp3 = Tmp3 + ":" + Str(Tmp2) + vbTab + "Remote: "
    CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwRemoteAddr, 4
    Tmp3 = Tmp3 + CStr(Ip_Buf(1)) + "." + CStr(Ip_Buf(2)) _
+ "."+ CStr(Ip_Buf(3)) + "." + CStr(Ip_Buf(4))
    ' 远程端口
    Tmp1 = TCP1.TCP_Table(i).dwRemotePort
    Tmp2 = Tmp1 / 256 + (Tmp1 Mod 256) * 256
    Tmp3 = Tmp3 + ":" + Str(Tmp2) + vbCrLf
    Text1 = Text1 + Tmp3
   Next i
  Case 50&:
   MsgBox "系统不支持该API函数": End
  Case 87:
   MsgBox "无效的参数": End
  Case 111&:
   MsgBox "缓冲区溢出": End
  Case 232&:
   MsgBox "无数据": End
  End Select
End Sub


  用于删除连接的CLICK事件源代码:

本新闻共3页,当前在第1页  1  2  3  

编辑:xker.com

上一篇:在VB中使用注册表
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
推荐文章 最新文章 热门文章
·用VB6.0实现网络实时监控系统
·MP4播放器玩转字幕—— 从Sub到Srt
·JAVA 与.NET 在前途上面的比较
·AJAX+JSF组件实现高性能的文件上载
·自己制作带农历的年历
·全面分析Java的垃圾回收机制
·3DMAX打造宇宙中遥望美丽的地球
·实现.NET应用程序的自动更新
·黑客也在乎安全:谈黑客避开检测的手
·内网安全技术十大策略 打造坚固的内网
·优化MySQL数据库性能的八大“妙手”
·给系统减肥 卸载Windows中的集成组件
·MySQL数据库中mysqldump命令使用详解
·SqlServer存储过程/函数加/解密
·CSS属性中Display与Visibility的不同
·用VB6.0实现网络实时监控系统
·与病毒赛跑,系统中毒之后的自救
·病毒专题
·行家眼光 怎样的WEB设计更专业
·MP4播放器玩转字幕—— 从Sub到Srt
·Word文档转为PPT演示文档的两种方法
·巧用地址栏打开媒体播放器
·Linux网络环境下玩转流媒体
·让Office在安装过程中自动输入用户信
·去掉点亮的QQ图标不完全手册
·JAVA 与.NET 在前途上面的比较
·.NET下正则表达式应用的四个示例
·八招秘笈教你提高刻录成功几率
·要看疗效 全球著名杀毒软件使用经验谈
·金山毒霸2006版正式版最新特色功能
·个人简历表格
·免费代理IP(每日更新)
·QQ收费头像免费使用的方法 
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·系统优化 专题
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·最经典的黑客入门教材
·求职简历封皮
·ACDSee v8.0注册码
·QQ空间皮肤代码
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: