C#如何欺骗WebRequest的IP地址

我有asp.net网站托管,我正在使WebRequest发布数据并获得响应。 该网站正在进行IP过滤。 我想欺骗发件人IP地址以进行测试。 是否可以以编程方式执行,或者我必须使用任何工具。

public string GetResponse(string request) { lock (Obj) { request = request + _dataControlInfo.SendEndingWith; Logger.Info(request); var req = (HttpWebRequest)WebRequest.Create(_serviceUrl); req.Headers.Add("SOAPAction", "\"\""); req.ContentType = "text/xml;charset=\"utf-8\""; req.Accept = "text/xml"; req.Method = "POST"; var stm = req.GetRequestStream(); var bytes = UtfEncoding.StringToUtf8ByteArray(request); stm.Write(bytes, 0, bytes.Length); stm.Close(); var resp = req.GetResponse(); var stmr = new StreamReader(resp.GetResponseStream()); var strResponseXml = stmr.ReadToEnd(); Logger.Info(strResponseXml); return strResponseXml; } } 

请说明任何可能性。

您正在寻找的是SharpPCap ,它是WinPCap的.NET端口..它允许您进行IP欺骗 ,这就是您所说的。 你的想法唯一的问题是你不能得到回复。 您可以发送请求,但如果您没有正确的返回地址,则请求将在互联网中丢失。


编辑

为了做到这一点yoruself w /在图书馆的帮助下你需要自己构建原始数据包。 这已在这里得到解答。

如果您希望得到答复,那么不。 如果没有正确的IP地址,服务器将不会将响应发送到正确的目标。

如果您仍然坚持尝试, 请参阅此文章以编程方式设置客户端的IP地址。

或者,您可以使用Web性能测试和启用IP切换的负载测试

您可以尝试使用代理,如此处所述。 ( http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.proxy.aspx )。

在另一台计算机上设置代理,然后将该计算机配置为请求代理服务器应该使请求看起来好像来自代理的IP,而不是您的IP。

某些服务器还可以考虑X-Forwarded-For和X-Real-IP标头。 因此,如果服务器检查这些标头,您可以将它们添加到Web请求中。 但这取决于服务器的实现。

使用System.Security命名空间中的Spoof类…