如何在 C# 中执行 TCP 跟踪路由?甚至可能吗?
问问题
7181 次
2 回答
2
您将需要原始以太网帧来手动生成 TCP 数据包,因为 Windows 不允许您通过原始套接字发送 TCP 数据包。
查看 nmap 如何获取原始以太网帧。重复。
于 2009-08-21T19:18:31.990 回答
1
来自 MSFT: http: //msdn.microsoft.com/en-us/library/ms740548 (VS.85).aspx
在 Windows 7、Windows Server 2008 R2、Windows Vista 和带有 Service Pack 2 (SP2) 的 Windows XP 上,通过原始套接字发送流量的能力受到以下几种方式的限制:
- TCP 数据不能通过原始套接字发送。
- 无法通过原始套接字发送具有无效源地址的 UDP 数据报。任何传出 UDP 数据报的 IP 源地址必须存在于网络接口上,否则数据报将被丢弃。进行此更改是为了限制恶意代码创建分布式拒绝服务攻击的能力,并限制发送欺骗数据包(具有伪造源 IP 地址的 TCP/IP 数据包)的能力。
- 不允许使用原始套接字调用绑定函数。
上述这些限制不适用于 Windows Server 2008、Windows Server 2003 或早于 Windows XP SP2 的操作系统版本。
于 2009-08-22T03:10:54.567 回答