2023-03-18 17:32:21 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
2023-04-30 15:43:08 +08:00
|
|
|
assert(function_exists('curl_init'));
|
2025-03-23 22:33:26 +08:00
|
|
|
assert(function_exists('curl_setopt'));
|
|
|
|
|
assert(function_exists('curl_exec'));
|
|
|
|
|
assert(function_exists('curl_close'));
|
2025-08-02 18:40:55 +08:00
|
|
|
assert(function_exists('curl_version'));
|
2025-03-23 22:33:26 +08:00
|
|
|
$curl_version = curl_version();
|
|
|
|
|
if (stripos($curl_version['ssl_version'], 'schannel') !== false) {
|
2025-08-02 18:40:55 +08:00
|
|
|
$domain_list = [
|
|
|
|
|
'https://captive.apple.com/',
|
|
|
|
|
'https://detectportal.firefox.com/',
|
|
|
|
|
'https://static-php.dev/',
|
|
|
|
|
'https://www.example.com/',
|
|
|
|
|
];
|
|
|
|
|
$valid = false;
|
|
|
|
|
foreach ($domain_list as $domain) {
|
|
|
|
|
$curl = curl_init();
|
|
|
|
|
curl_setopt($curl, CURLOPT_URL, $domain);
|
|
|
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
|
curl_setopt($curl, CURLOPT_HEADER, 0);
|
|
|
|
|
$data = curl_exec($curl);
|
|
|
|
|
curl_close($curl);
|
|
|
|
|
if ($data !== false) {
|
|
|
|
|
$valid = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
assert($valid);
|
2025-03-23 22:33:26 +08:00
|
|
|
}
|