Как скрыть ip делая запрос через CURL (PHP)?

Всем доброго времени суток.
Подскажите, возможно ли как-то замаскировать ip при запросе через CURL (PHP)?
Интересует в основном можно ли замаскировать не используя proxy?
Может изменение хеадера или еще как.
Ну а если нельзя то можно ли при запросе использовать какие-то постоянные proxy, желательно конечно бесплатные, так же интересует можно ли сделать запрос через сервера tor.

В общем как вы поняли я ищу способ сделать запрос через CURL замаскировав ip, подскажите мне в данном вопрос кто знает.
  • Вопрос задан
  • 4449 просмотров
Пригласить эксперта
Ответы на вопрос 4
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Интересует в основном можно ли замаскировать не используя proxy?

Чтоб пакет вернулся, нужно отправлять через какой-то шлюз, который знает, кому его возвращать, это может быть прокси, vpn или какой-либо ещё туннель, хоть ssh.
Может изменение хеадера или еще как.

можно поменять X-Forwarded-For и некоторые неправльно написанные веб приложения будут учитывать именно этот IP, но это скорее исключение, обычно этот баг пихают в CTF'ы, но на практике ни разу не встречал
Ну а если нельзя то можно ли при запросе использовать какие-то постоянные proxy, желательно конечно бесплатные,

Да, есть сайты, которые предоставляют такие прокси, а у меня есть программа для сбора проксей по таким сайтам https://github.com/DevAlone/proxy_py много проксей мрут, но есть такие, которые работают стабильно, самая надёжная работает уже 42 дня.
так же интересует можно ли сделать запрос через сервера tor.

Да, на ubuntu установить тор `sudo apt install tor`, запустить `sudo service tor start` и использовать его как socks прокси с адресом `localhost:9050`, адрес можно поменять в настройках, также можно поднять несколько таких проксей и у каждой будет свой IP адрес.
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
https://gist.github.com/Kirill-Gorelov/
ВОт тут я записываю свои наработки по работе с curl.
Может пригодиться.
Но конкретно что тебе нужно смотри в строке с 55 по 85.
У меня там пример по скачиванию файла, но легко переделать под любое другое.
Но это по работе через прокси. Прокси как писали выше это hidemy.
У меня даже где-то была связка hidemy + мой curl, но уже не помню где.
Ответ написан
Комментировать
@frees2
Реально можно и это работает через curl ( один, потом второй запрос..), к примеру, для получения роликов ютуба, сначала получаем один заголовок, потом другой из списка... Гугл с этим борется. Такая холодная война давно идёт.
Надо искать пример скрипта, там всё расписано.
Ответ написан
Комментировать
Horny_515
@Horny_515
При условии, что тор стоит и уже запущен
Первый файл называем "cURL.php"
В него пишем
<?php
//Создаем функцию принимающую ссылку, и 2 массива
function curl_get($url, $referer, $useragent)
{
$ch = curl_init();
//Задаем тор прокси
curl_setopt($ch, CURLOPT_PROXY, 'socks5://127.0.0.1:9050');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
//Маскируемся кастомно выбирая систему
curl_setopt($ch, CURLOPT_USERAGENT, $useragent[array_rand($useragent, 1)]);
//Маскируемся кастомно подставляя поисковую сисему из которой буд-то бы пришли
curl_setopt($ch, CURLOPT_REFERER, $referer[array_rand($referer, 1)]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
?>

Второй файл как-нибудь называем и в него пишем
<?php
include_once('cURL.php');
//Массив подстановок система+браузер (В нете есть сайты где этого добра навалом)
$useragent_array = [
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0',
'Mozilla/5.0 (X11; U; Linux Core i7-4980HQ; de; rv:32.0; compatible; JobboerseBot; https://www.jobboerse.com/bot.htm) Gecko/20100101 Firefox/38.0',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0',
'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0',
'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0',
'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0 ',
'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0',
'Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0',
'Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0',
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'];
//Массив поисковиков из которых мы буд-то бы пришли
$referer_array = [
'https://yandex.ru/',
'https://www.google.com/',
'https://www.google.com/',
'https://www.rambler.ru/',
'https://www.google.com/',
'https://www.bing.com/'];
//Запускаем загрузку кода страницы в переменную $html
$html = curl_get('http://адрес цели', $referer_array, $useragent_array);
?>

В общем там еще много всего нужно по хорошему - проверять доступ, менять ип и т.д Ну кусок основы написал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы