前言
現在的網路通常同時支援 IPv6 及 IPv4 協定,但有些時候你使用 PHP 發送每個 cURL 要求時,會希望他強制以 IPv6 或是 IPv4 去要求,這時候你就可以參考這篇文章了!
操作方式
你可以使用這個參數來強迫 cURL 使用你指定的協定:
<?php
# 預設,可以依照 DNS 來調整使用 IPv6 或 IPv4
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);
# 強迫使用 IPv6
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
# 強迫使用 IPv4
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
?>
放在一個 cURL 陣列可能是長這樣的(範例為強制使用 IPv4):
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.google.com',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_NONE,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(),
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
這樣你就可以強制指定使用 IPv6 或 IPv4 囉!