PHP cURL, как добавить значение User Agent или прервать серверы, блокирующие запросы cURL?

Я переношу массив объектов. У меня есть клиент cURL (податель заявки) на собственном сервере и скрипт прослушивания на другом сервере , который не под моим контролем. Тогда я думаю, что там, они блокируют входящие запросы cURL, потому что, когда я тестирую обычную HTML <form> , она работает. Но не через cURL в любом случае.

Поэтому я думаю, что они сделали некоторые ограничения для cURL.

Тогда мои вопросы здесь:

  1. Может ли сервер ограничивать / блокировать входящие запросы cURL?
  2. Если да, могу ли я обмануть / изменить заголовок HTTP (User Agent) в моем инициирующем сценарии cURL?
  3. Или есть другие возможные истории?

Благодаря!

  1. На стороне сервера мы можем заблокировать некоторые запросы, узнав поля заголовка (включая refer, cookie, user-agent и т. Д.) В HTTP-запросе, ip-адресе, частоте доступа. И в большинстве случаев запросы, сгенерированные машиной, обычно имеют нечто иное, чем человеческие запросы, например, отсутствие ссылки и cookie, или с более высокой частотой доступа, мы можем написать некоторые правила, чтобы отклонить эти запросы.

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

  3. Как правило, используя более низкую частоту и не делайте большую нагрузку для своего сервера, следуйте их правилам доступа, они редко блокируют ваши запросы.

  $agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)'; $curl=curl_init(); curl_setopt($curl, CURLOPT_USERAGENT, $agent); 

ЕСЛИ вы все еще сталкиваетесь с проблемой, выполните следующие действия.

1.

 $config['useragent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0'; curl_setopt($curl, CURLOPT_USERAGENT, $config['useragent']); curl_setopt($curl, CURLOPT_REFERER, 'https://www.domain.com/'); 

2.

 $dir = dirname(__FILE__); $config['cookie_file'] = $dir . '/cookies/' . md5($_SERVER['REMOTE_ADDR']) . '.txt'; curl_setopt($curl, CURLOPT_COOKIEFILE, $config['cookie_file']); curl_setopt($curl, CURLOPT_COOKIEJAR, $config['cookie_file']); 

ПРИМЕЧАНИЕ. Вам нужна папка COOKIES в каталоге.

3.

 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

Если это не решает проблему, то укажите Sample Input / Output / Error / etc. Таким образом, может быть предоставлено более точное решение.

Сервер не может блокировать только запросы cURL, потому что это просто HTTP-запросы. Поэтому изменение User Agent вашего cURL может решить вашу проблему, так как сервер будет думать, что вы подключаетесь через браузер, представленный в UA.