2012-11-11 26 views
2
Socket socket1 = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); 

socket1.Bind(new IPEndPoint(ipAddress, 0)); 

socket1.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true); 

byte[] byTrue = new byte[] { 1, 0, 0, 0 }; 
byte[] byOut = new byte[] { 1, 0, 0, 0 }; 

socket1.IOControl(IOControlCode.ReceiveAll, byTrue, byOut); 

byte[] buffer1 = new byte[4096]; 

socket1.BeginReceive(buffer1, 0, buffer1.Length, SocketFlags.None, new AsyncCallback(OnReceive), new Tuple<Socket, byte[]>(socket1, buffer1)); 

我使用此代碼來捕獲IP數據包,對所有端口的適配器上。如何在C#中捕獲SMB/CIFS數據包?

我該如何修改此代碼以捕獲SMB/CIFS數據包?將附加數據包捕獲庫添加到項目/代碼並不是最好。

回答

0

該代碼可以捕獲SMB數據包。