Вопрос по PostGet

Gizmond

Client
Регистрация
18.02.2017
Сообщения
263
Благодарностей
51
Баллы
28
Всем привет. Был шаблон у меня под веб версию майл.ру , но почитав про постгет , меня подкупила быстрая скорость обработки и малая нагрузка на систему. Решил сделать на такую версию шаблона.
Шаблон сделал , все отлично. Но задался вопросом рэндома заголовков и проксей.

Вообщем , скажите кто сталкивался или кто знает , правильно ли я делаю.

1. Прокси

Создаем экшн ( соединение прокси ) > далее закидываем туда переменку с прокси ( написаной в формате socks5://лог:пар@ip:port или http(s) ). Правильно ли я понимаю , что при следующих гет или пост запросах , если мы устанавливаем в них во вкладке прокси, значение "использовать прокси текущего проекта" , то все обращения к сервису у нас будут идти через это соединение ? Или же нужно в каждом экшене прописывать проксю из переменки ?

2. Рэндом UserAgent


Взял си шарп код отсюда :

http://zennolab.com/discussion/threads/anonimnost-v-kazhdyj-zennoposter-ot-useragenta-do-shriftov-chast-1.37703/

  1. // Выбираем случайную версию Firefox
  2. string version = Macros.TextProcessing.Spintax("{38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53}");

  3. //Формируем набор buildID нашего Firefox (у каждой версии свой) [Идея хранения позаимствована у doc'a, за что ему большая благодарность!]
  4. Dictionary <string, string> buildIDSet = new Dictionary <string, string>();
  5. buildIDSet.Add("53", "20170413192749");
  6. buildIDSet.Add("52", "20170316213829");
  7. buildIDSet.Add("51", "20170125094131");
  8. buildIDSet.Add("50", "20161104212021");
  9. buildIDSet.Add("49", "20161019084923");
  10. buildIDSet.Add("48", "20160817112116");
  11. buildIDSet.Add("47", "20160623154057");
  12. buildIDSet.Add("46", "20160502172042");
  13. buildIDSet.Add("45", "20160905130425");
  14. buildIDSet.Add("44", "20160210153822");
  15. buildIDSet.Add("43", "20160105164030");
  16. buildIDSet.Add("42", "20151029151421");
  17. buildIDSet.Add("41", "20151014143721");
  18. buildIDSet.Add("40", "20150812163655");
  19. buildIDSet.Add("39", "20150618135210");
  20. buildIDSet.Add("38", "20150513174244");

  21. instance.ShowNavigatorField(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.BuildId);
  22. // Устанавливаем BuildID
  23. instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.BuildId, buildIDSet[version]);

  24. // Формируем набор версий операционной системы Windows
  25. // 6.0 Windows Vista
  26. // 6.1 Windows 7
  27. // 6.2 Windows 8
  28. // 6.3 Windows 8.1
  29. // 10.0 Windows 10
  30. string winOC = Macros.TextProcessing.Spintax("{6.0|6.1|6.2|6.3|10.0}");
  31. string platform = Macros.TextProcessing.Spintax("{Win32|Win64}");

  32. // Определяем "битность" самого приложения
  33. string platformApp = string.Empty;
  34. if(platform=="Win32"){
  35. platformApp = Macros.TextProcessing.Spintax("{; WOW64|}");
  36. } else {
  37. platformApp = "; Win64; x64";
  38. }
  39. // Устанавливаем Useragent
  40. project.Profile.UserAgent = string.Format("Mozilla/5.0 (Windows NT {0}{1}; rv:{2}.0) Gecko/20100101 Firefox/{2}.0", winOC, platformApp, version);
  41. project.Profile.UserAgentAppVersion = "5.0 (Windows)";
  42. project.Profile.UserAgentAppName = "Netscape";
  43. project.Profile.UserAgentAppCodeName = "Mozilla";
  44. project.Profile.UserAgentProduct = "Gecko";
  45. project.Profile.UserAgentProductSub = "20100101";

  46. // OC
  47. project.Profile.UserAgentOsCpu = string.Format("Windows NT {0}{1}", winOC, platformApp);
  48. project.Profile.UserAgentPlatform = platform;

  49. Random r = new Random();
  50. // Формируем набор возможных вариантов Accept-Language
  51. // Здесь присутствует как русский язык, так и иностранный.
  52. // Если необходимо, чтобы выборка была по какому-то определенному признаку - закоментируйте или удалите не нужные строки.
  53. string[] acceptLanguageSet = {
  54. "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
  55. "en-US,en;q=0.5",
  56. "en-US,en;q=0.8,es;q=0.6",
  57. "en-US,en;q=0.8,nl;q=0.6,el;q=0.4,de;q=0.2",
  58. "ru-RU,ru;q=0.9,en;q=0.8",
  59. "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
  60. };
  61. // Устанавливаем Accept-Language
  62. string acceptLanguage = acceptLanguageSet[r.Next(0, acceptLanguageSet.Length)].ToString();
  63. project.Profile.AcceptLanguage = acceptLanguage;
  64. // Устанавливаем настройки языка
  65. project.Profile.UserAgentBrowserLanguage = acceptLanguage.Substring(0, acceptLanguage.IndexOf(','));
  66. project.Profile.UserAgentLanguage = acceptLanguage.Substring(0, acceptLanguage.IndexOf(','));
Получается данным методом , у нас заголовки автоматом заменяются ? Или нужно результат сохранять в переменку и записывать уже в профиль?

3. Заголовки X-FORWARDED-FOR

Прочитал в той же статье , которую указывал выше что данные заголовки , если прокси не очень хорошие могут выдавать реальный ip адрес. И автор рекомендует оставлять эти заголовки пустыми. Полазил в мэйкере , но данных записей ни где не нашел.

Подскажите как правильно реализовать подмену данных заголовков ? Или как оставить их пустыми. И в какой момент они заполняются ? Если сервер запрашивает данные заголовки ?

HTTP_VIA
HTTP_X_FORWARDED_FOR
HTTP_FORWARDED_FOR
HTTP_X_FORWARDED
HTTP_FORWARDED
HTTP_CLIENT_IP
HTTP_FORWARDED_FOR_IP
VIA
X_FORWARDED_FOR
FORWARDED_FOR
X_FORWARDED
FORWARDED
CLIENT_IP
FORWARDED_FOR_IP
HTTP_PROXY_CONNECTION
4. Какие экшены на начальном этапе(для postget проекта) можно сделать , чтобы был максимальный рэндом и меньше подозрений было что это орудет бот :-)

5.Возможно кто то работал с майл.ру. Как загружать правильно файлы вложения в письмо или на тоже облако. Смотрел сниффер ничерта не понял , что к чему.


Заранее спасибо за ответы
 
  • Спасибо
Реакции: ks1989

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)