[英]php curl get proxy
我在Windows中使用PHP脚本来发出成功发出SOAP请求的curl请求,并且我正在尝试准确地跟踪这个成功请求如何在C#.NET中复制它。
如何使用PHP来检测将使用哪个代理服务器curl
?
我希望在php curl中可能有一个curl_getopt
,所以我可以这样做:
curl_getopt(CURLOPT_PROXY);
但唉它不存在。
有什么方法让我找出哪个代理服务器php curl
将连接通过?
function wget($url)
{
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_PROXY => '...proxy.ip...',
CURLOPT_PROXYPORT => '...proxy.port...',
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9',
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
$error = curl_error($ch);
return (!$error && $content) ? $content : null;
}
看看这个答案> 如何获得以前用curl_setopt()设置的选项?
http://php.net/manual/en/function.override-function.php
ps你应该需要http://php.net/manual/en/function.rename-function.php
如果它使用与Windows配置相同的,你应该能够像这样找到它(未经测试,因为我没有Windows服务器):
<?php
$proxyServerString = shell_exec('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | find /i "proxyserver"');
$proxyServerString = trim($proxyServerString);
/*
$proxyServerString should be 'ProxyServer REG_SZ http=127.0.0.1:8888;https=127.0.0.1:8888'
*/
preg_match("/ProxyServer *REG_SZ *(.*)/i", $proxyServerString, $match);
/*
$match[1] will be something like 'http=127.0.0.1:8888;https=127.0.0.1:8888'
*/
$proxyServersTemp = explode(";", $match[1]);
$proxyServers = array();
foreach ($proxyServersTemp as $proxyServerTemp) {
preg_match("/^(.*?)=(.*?):(.*?)$/", $proxyServerTemp, $proxyMatch);
$proxyServers[] = array(
"protocol" => $proxyMatch[1],
"address" => $proxyMatch[2],
"port" => $proxyMatch[3]
);
}
print_r($proxyServers);
?>
$proxyServers
现在应该包含以下内容:
Array
(
[0] => Array
(
[protocol] => http
[address] => 127.0.0.1
[port] => 8888
)
[1] => Array
(
[protocol] => https
[address] => 127.0.0.1
[port] => 8888
)
)
一种方法是,您可以向www.whatismyip.com
或类似网站发出卷曲请求,并检查html响应以找出您正在使用的代理(如果您正在使用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.