현재 위치: > 최신 기사 목록> curl_init 사용자 에이전트를 설정하는 방법은 무엇입니까? 브라우저 요청을 시뮬레이션합니다

curl_init 사용자 에이전트를 설정하는 방법은 무엇입니까? 브라우저 요청을 시뮬레이션합니다

gitbox 2025-07-17

기사 텍스트

1. 소개

웹 개발에서 CURL은 다양한 프로토콜 (예 : HTTP, FTP)을 통해 서버와 통신하는 데 사용할 수있는 매우 일반적인 도구입니다. PHP에서 CURL 확장은 원격 페이지 컨텐츠를 얻고 양식 데이터를 제출하는 것과 같은 작업에서 널리 사용됩니다. 일반적으로 Curl은 기본적으로 PHP의 사용자 에이전트를 사용하지만 브라우저 요청을 모방 할 때 요청을 보내기 위해 브라우저로 위장해야합니다. 가장 일반적인 방법 중 하나는 사용자 정의 사용자 에이전트를 설정하는 것입니다.

2. 사용자 에이전트 란 무엇입니까?

사용자 에이전트는 서버에 요청을 보낼 때 클라이언트 (일반적으로 브라우저)가 운반하는 HTTP 헤더입니다. 일반적으로 브라우저 유형, 운영 체제 버전 등을 포함하여 요청 소스와 클라이언트의 세부 사항을 식별하는 데 사용됩니다. 사용자 에이전트를 통해 서버는 다른 클라이언트 장치 및 브라우저에 따라 다른 컨텐츠를 반환 할 수 있습니다.

예를 들어, 브라우저가 웹 페이지에 액세스하면 HTTP 요청 헤더에는 다음과 유사한 사용자 에이전트 필드가 포함됩니다.

 <span><span><span class="hljs-keyword">User</span></span><span><span class="hljs-operator">-</span></span><span>Agent: Mozilla</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">5.0</span></span><span> (Windows NT </span><span><span class="hljs-number">10.0</span></span><span>; Win64; x64) AppleWebKit</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">537.36</span></span><span> (KHTML, </span><span><span class="hljs-keyword">like</span></span><span> Gecko) Chrome</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">91.0</span></span><span><span class="hljs-number">.4472</span></span><span><span class="hljs-number">.124</span></span><span> Safari</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">537.36</span></span><span>
</span></span>

3. PHP를 통해 사용자 에이전트를 설정하는 방법은 무엇입니까?

Curl Extension을 사용하여 브라우저 요청을 시뮬레이션 할 때 CurloPt_useragent 옵션을 통해 CURL_SETOPT () 함수를 통해 사용자 정의 사용자 에이전트를 설정할 수 있습니다.

다음 예에서는 Chrome 브라우저 요청을 시뮬레이션하기 위해 curl_setopt () 를 통해 사용자 에이전트를 설정합니다.

 <span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_USERAGENT, </span><span><span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"</span></span><span>);
</span></span>

위 코드의 사용자 에이전트 문자열은 Windows 운영 체제에서 Chrome 브라우저를 사용하여 웹 페이지에 액세스하도록 요청을 시뮬레이션합니다.

4. 사용자 에이전트 예제를 설정하십시오

다음 PHP 코드를 사용하여 CURL 요청에서 사용자 에이전트를 설정하는 방법을 보여주기 위해 브라우저 요청을 시뮬레이션합니다.

 <span><span><span class="hljs-variable">$ch</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_URL, </span><span><span class="hljs-string">"https://www.example.com"</span></span><span>);  </span><span><span class="hljs-comment">// 대상 URL</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_USERAGENT, </span><span><span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"</span></span><span>);  </span><span><span class="hljs-comment">// 브라우저를 시뮬레이션하십시오 User-Agent</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_RETURNTRANSFER, </span><span><span class="hljs-literal">true</span></span><span>);  </span><span><span class="hljs-comment">// 직접 출력 대신 응답 내용을 반환합니다</span></span><span>

</span><span><span class="hljs-variable">$response</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_exec</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);  </span><span><span class="hljs-comment">// 요청을 실행하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_close</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);  </span><span><span class="hljs-comment">// 폐쇄 cURL 세션</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$response</span></span><span>;  </span><span><span class="hljs-comment">// 출력 응답 내용</span></span><span>
</span></span>

5. 다른 일반적인 사용자 에이전트 설정

크롤러의 시뮬레이션 효과를 향상 시키려면 더 복잡한 사용자 에이전트를 설정하거나 여러 사용자 에이전트 사이에서 무작위로 전환해야 할 수도 있습니다. 다음은 여러 공통 브라우저에 대한 사용자 에이전트 의 몇 가지 예입니다.

  • Chrome :

     <span><span><span class="hljs-type">Mozilla</span></span><span><span class="hljs-regexp">/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/</span></span><span><span class="hljs-number">537.36</span></span><span> (</span><span><span class="hljs-type">KHTML</span></span><span>, like </span><span><span class="hljs-type">Gecko</span></span><span>) </span><span><span class="hljs-type">Chrome</span></span><span><span class="hljs-regexp">/91.0.4472.124 Safari/</span></span><span><span class="hljs-number">537.36</span></span><span>
    </span></span>
  • Mozilla Firefox :

     <span><span><span class="hljs-type">Mozilla</span></span><span><span class="hljs-regexp">/5.0 (Windows NT 10.0; Win64; x64) Gecko/</span></span><span><span class="hljs-number">20100101</span></span><span> </span><span><span class="hljs-type">Firefox</span></span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">89.0</span></span><span>
    </span></span>
  • 사파리 (Mac) :

     <span><span><span class="hljs-type">Mozilla</span></span><span><span class="hljs-regexp">/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/</span></span><span><span class="hljs-number">537.36</span></span><span> (</span><span><span class="hljs-type">KHTML</span></span><span>, like </span><span><span class="hljs-type">Gecko</span></span><span>) </span><span><span class="hljs-type">Version</span></span><span><span class="hljs-regexp">/13.1 Safari/</span></span><span><span class="hljs-number">537.36</span></span><span>
    </span></span>

요청을 다른 장치 나 브라우저에서 나오는 것처럼 보이기 위해 필요한 경우 사용자 에이전트 문자열을 변경할 수 있습니다.

6. 요약

PHP의 확장을 통해 브라우저 요청을 쉽게 시뮬레이션하고 요청 소스를 위장하기 위해 사용자 정의 사용자 에이전트를 설정할 수 있습니다. 이것은 네트워크 크롤러, API 요청 등을 수행 할 때 매우 유용합니다. 기본 사용자 에이전트를 사용하여 로봇으로 인식되는 것을 피하기 위해 간단한 안티 크롤링 메커니즘을 우회 할 수 있습니다.

위의 방법을 통해 사용자 에이전트를 유연하게 설정하고 조정하여 다양한 브라우저 나 장치를 시뮬레이션하여 웹 컨텐츠를 얻을 수 있습니다.