2012-06-24 26 views
1

簡介: 這個問題是關於使用SharpPcap的數據包嗅探/發送。SharpPcap - 如何區分收入/傳出數據包?

  • 那麼實際上主要是IDEEA:

有一個客戶端應用程序與服務器端進行通信。我做了一個嗅探器記錄所有(由我的過濾器指定)數據包。現在我只想重發這些數據包到服務器端..而不是從客戶端......但通過我自己的應用程序。模擬動作的種類(可以說一個按鈕,點擊快100倍)

的問題是:

1.我應該送什麼樣的數據包:

  • 原始數據包?
  • SharpPcap解釋數據包? (ipPacket)例如:
    var rawPacket = Packet.ParsePacket(packet.Packet.LinkLayerType, packet.Packet.Data);
    var ipPacket = IpPacket.GetEncapsulated(rawPacket);

  • The payLoadData只?如果是..其有效載荷數據?從原始或從ipPacket?

2.有人可以提供一個非常好的和工作的一段代碼。

3.如何區分是傳入還是傳出?

謝謝你的合作!

回答

0

你可以試試這個:

var ipPacket = IpPacket.GetEncapsulated(rawPacket); 
IPAddress localIPs = Dns.GetHostAddresses(Dns.GetHostName())[0]; 
if(localIPs.ToString()== ipPacket.SourceAddress.ToString()) 
{ 
//outgoing packet 
}