c# - 使用 Sharppcap 或 packetdotnet 发送 http post 数据包

标签 c# .net packet sharppcap packet.net

出于测试原因,我尝试生成具有不同源 IP 地址的 http 数据包并将其发布到目的地。

我将使用sharppcappacketdotnet

在这里找到了很好的样本:

http://www.tamirgal.com/blog/post/SendTcpSynExamplecs.aspx

这里:

http://pcapdotnet.codeplex.com/wikipage?title=Pcap.Net%20Tutorial%20-%20Sending%20Packets

但我是这方面的菜鸟,我需要帮助:

  1. 在发送http数据包之前我应该​​做什么?执行 TCP 握手还是什么?您可以发布任何有关调用的示例吗 url使用post动词通过发送http数据包

  2. 为了进行一些压力测试,我需要更改源 IP 地址,而目标响应对我来说并不重要。所以改变
    源地址是否足够校验和其他属性怎么样?

任何示例或链接都会有帮助。

最佳答案

正如克里斯·摩根在回答中指出的那样,按照您所描述的方式进行操作是不可能的。原因如下:

  • HTTP 协议(protocol)(​​出于实用目的 - 始终)通过 TCP 连接运行
  • 在实际数据开始流动之前,TCP 连接必须执行握手(3 数据包相互交换 - 客户端 -> 服务器 -> 客户端 -> 服务器)
  • 由于握手,不可能替换 HTTP 源 IP 地址 - 为了建立连接,您需要提供有效的 IP(否则您将不会收到第二个数据包,也无法发送所需的第三个数据包)数据包)
  • 源 IP 地址将从已建立的连接属性中获取,因此在建立连接后也无法伪造它。

在许多特殊情况下,这是部分可能的(X-Forwarded-For 和 HTTP 请求中的类似 header ),但这必须针对每个应用程序进行研究。

所以,简而言之:您所请求的内容是不可能的(除了一些非常特殊的情况),您可以阅读更多有关 this Wiki article 上建立的 TCP 连接的信息。

关于c# - 使用 Sharppcap 或 packetdotnet 发送 http post 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936882/

相关文章:

c# - 打印缩放图像 c#

Android - 这是发送单个 UDP 数据包的正确方法吗?

c# - HttpListener 类可以用于嗅探吗?

c# - C#如何在列表的开头和结尾处修剪空元素

c# - 我可以在框架方法上使用 SuppressMessage 吗?

.net - Windows 7 和 8 中的不同 .NET 4.5?

sockets - TCP 阻塞套接字 - 在不同数据包中接收少量字节的可能性

c# - 如何使用 ISO 8601 格式的 DateTime 字段将 JSON 文本反序列化为 BsonDocument?

c# - 为什么 double.MaxValue + double.Epsilon 不是 double.Infinity?

c# - 为什么 jQuery $.ajax 运行速度非常慢?