Тайм-аут HttpWebRequest (блокируется) C#

У меня есть приложение aC#, которое загружает несколько крошечных файлов с веб-сайтов (торренты). Некоторые сайты ограничивают количество загрузок на IP в день.

Я делаю HttpWebRequest и, если поток является допустимым торрентом, я сохраняю его на диск.

Есть ли способ для моего приложения на C# подделать мой IP при выполнении HttpWebRequest, чтобы загрузка не закончилась неудачей?

Я разложил время загрузки до одного на 10 минут, но не повезло. Я все еще заблокирован в конце концов.

Я слышал, что "TOR" может использовать разные IP-адреса, но я не хочу, чтобы люди, использующие мое настольное приложение, устанавливали браузер TOR отдельно.

           HttpWebResponse resp = null;

        try
        {
            var req = (HttpWebRequest)WebRequest.Create("http://www.exampe.com/test.torrent);
            req.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
            req.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
            req.Timeout = 30000;
            req.KeepAlive = true;
            resp = (HttpWebResponse)(req.GetResponse());

        }

Какие-либо решения?

1 ответ

Для этого вам нужно манипулировать пакетами tcp / ip. Это означает, что вам нужно перехватить исходящий пакет, созданный HttpWebRequest, и изменить его исходный IP-адрес на поддельный.

Я нашел этот пост на форуме, который, похоже, связан с тем, что вы хотите сделать, зацените его: http://pcapdotnet.codeplex.com/discussions/349978

Насколько я знаю, вы можете сделать это через библиотеки PCap.net или SharpPcap.

Другие вопросы по тегам