网络封包程序,可以截获流经网卡的所有数据包

效果图如下:

附源码:

1、frmSniffer

Public   Class frmSniffer

2、frmNetManager

Public   Class frmNetManager

变量定义

窗体事件

获取网上邻居列表

ListViewComputers菜单事件

End Class

3、ClsPacketInfo

Imports  System.Net
Imports  System.Net.Sockets
Imports  System.Threading


分析数据包

4、ClsReceive

Imports  System.Net
Imports  System.Net.Sockets
Imports  System.Threading

网卡设置混杂模式,监听数据包

5、FunSub

Imports  System
Imports  System.Net
Imports  System.Windows.Forms

Public   Module FunSub

定义数据包分析格式

递归查询节点

根据IP地址获得计算机Mac地址

获得同网段内的计算机列表


End Module

6、TreeViewFunction

Imports  System.Runtime.Serialization.Formatters.Binary
Imports  System.IO
Imports  System.Windows.Forms

Module TreeViewFunction
    
<Serializable()> Structure sNode
        
Dim node As String
        
Dim level As Integer
        
Dim tag() As Byte
    
End Structure


    
Dim GlobeNodes As New ArrayList

    
Public fPath As String = Application.StartupPath + "Sniffer.wzm"

    
Private Sub SaveNodes(ByVal fName As String)
        
Dim formatter As BinaryFormatter
        
Dim saveFile As System.IO.FileStream

        saveFile 
= File.Create(fName)
        formatter 
= New BinaryFormatter
        formatter.Serialize(saveFile, GlobeNodes)
        saveFile.Close()
    
End Sub


    
Public Sub CreateList(ByVal node As TreeNode, ByVal fName As String)
        
Static level As Integer
        
Dim thisNode As TreeNode, myNode As New sNode

        
With myNode
            .level 
= level
            .node 
= node.Text
            .tag 
= node.Tag
        
End With

        GlobeNodes.Add(myNode)

        
If node.Nodes.Count > 0 Then
            level 
= level + 1
            
For Each thisNode In node.Nodes
                CreateList(thisNode, fName)
            
Next
            level 
= level - 1
        
End If

        
Call SaveNodes(fName)
    
End Sub


    
Public Sub LoadNodes(ByVal TV As TreeView, ByVal fname As String)
        
Dim formatter As BinaryFormatter = New BinaryFormatter
        
Dim openFile As System.IO.FileStream = File.Open(fname, System.IO.FileMode.Open)

        GlobeNodes.Clear()
        GlobeNodes 
= CType(formatter.Deserialize(openFile), ArrayList)
        openFile.Close()

        ShowNodes(TV)
    
End Sub


    
Sub ShowNodes(ByRef TV As TreeView)
        
Dim mObject As sNode
        
Dim currNode As TreeNode = Nothing
        
Dim level As Integer = 0

        TV.Nodes.Clear()

        
For i As Integer = 0 To GlobeNodes.Count - 1
            mObject 
= CType(GlobeNodes(i), sNode)

            
If mObject.level = level Then
                
If currNode Is Nothing Then
                    currNode 
= TV.Nodes.Add(mObject.node.ToString)
                    currNode.Tag 
= mObject.tag
                
Else
                    currNode 
= currNode.Parent.Nodes.Add(mObject.node.ToString)
                    currNode.Tag 
= mObject.tag
                
End If
            
Else
                
If mObject.level > level Then
                    currNode 
= currNode.Nodes.Add(mObject.node.ToString)
                    currNode.Tag 
= mObject.tag
                    level 
= mObject.level
                
Else
                    
While mObject.level <= level
                        currNode 
= currNode.Parent
                        level 
= level - 1
                    
End While
                    currNode 
= currNode.Nodes.Add(mObject.node.ToString)
                    currNode.Tag 
= mObject.tag
                    level 
= level + 1
                
End If
            
End If
        
Next
        
'释放资源
        GlobeNodes.Clear() : currNode = Nothing : mObject = Nothing
    
End Sub


End Module


7、Sniffer Setup 安装程序下载,现在不知何故上传不了,有时间再弄吧。

 

你可能感兴趣的:(exception,function,网络,String,Integer,byte)