С# Как обманывать IP-адрес для WebRequest
У меня есть сайт 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;
}
}
Просьба указать любые возможности.
Ответы
Ответ 1
Что вы ищете SharpPCap, который является .NET-портом WinPCap.. он позволяет вам делать IP Spoofing, о чем вы говорите. Единственная проблема с вашей идеей в том, что вы не сможете получить ответ. Вы можете отправлять запросы, но если у вас нет надлежащего адреса возврата, запрос будет потерян в interwebs.
Изменить
Чтобы сделать это с помощью библиотеки, вам нужно будет самостоятельно создать необработанные пакеты. На это был дан ответ здесь.
Ответ 2
Если вы ожидаете получить ответ, то нет. Без правильного IP-адреса сервер не отправит ответ правильному адресату.
Если вы все равно настаиваете на том, чтобы видеть эту статью для программной настройки IP-адреса клиента.
Ответ 3
Или вы можете использовать Тестирование веб-производительности и тест нагрузки с IP Включено включение
Ответ 4
Вы можете попытаться использовать прокси-сервер, как описано здесь.
(http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.proxy.aspx).
Настройка прокси-сервера на другом компьютере, а затем настройка этого компьютера в качестве прокси-сервера ваших запросов должна сделать запрос таким, как если бы он пришел из прокси-сервера, а не из вашего.
Ответ 5
Некоторые серверы также могут рассматривать заголовки X-Forwarded-For и X-Real-IP.
Поэтому, если сервер проверяет эти заголовки, вы можете добавить их в свой веб-запрос.
Но это зависит от реализации сервера.
Ответ 6
Используйте класс Spoof, найденный в пространстве имен System.Security...