2017-05-16 17 views
0

我不能在pcap.net如何创建HttpResponseDatagram和HttpResponseLayer在pcap.net

IpV4Datagram ip = packet.Ethernet.IpV4; 
     TcpDatagram tcp = ip.Tcp; 
     HttpDatagram http = tcp.Http; 
    // HttpResponseDatagram resdat=http.; How can i create them? 
    // HttpResponseLayer resp; 
if (tcp.Http.Body != null && http.IsResponse) 
      body = resp.Body.ToString(); 

创建这些对象我试图从TCP数据包得到HTTP响应体。如果还有其他方法可以帮助吗?

+0

您是否有理由在_packet_杠杆工作?大多数站点在1460字节的区域内运行数据包大小,而典型的页面内容多次。 –

+0

我正在做一个tcp侦听器,我会监听所有的数据包。数据包计数不是问题。 –

回答

0

Pcap.Net User Guide中,有a section about sending packets。 在该节中,有一个关于如何创建HttpRequestLayer的例子,并且创建HttpResponseLayer非常相似。

HttpRequestLayer httpLayer = 
    new HttpRequestLayer 
    { 
     Version = HttpVersion.Version11, 
     Header = new HttpHeader(new HttpContentLengthField(11)), 
     Body = new Datagram(Encoding.ASCII.GetBytes("hello world")), 
     Method = new HttpRequestMethod(HttpRequestKnownMethod.Get), 
     Uri = @"http://pcapdot.net/", 
    }; 

HttpResponseDatagram通过解析一个HTTP包制作。 例如,通过做

packet.Ethernet.IpV4.Tcp.Http 

有不用解析包创建Datagram没有简单的方法。