我正在Windows中使用PHP脚本来发出curl请求来成功发出一个SOAP请求,而且我正在试图追查这个成功的请求是如何在C#.NET中进行复制的。
我如何使用PHP来检测curl将要使用哪个代理服务器?
我希望有一个curl_getopt在PHPcurl ,所以我可以做这样的事情:
curl_getopt(CURLOPT_PROXY);
但唉,它不存在。
Windows照片查看器如何从Windows资源pipe理器中获取幻灯片的文件?
如何清理由Runtime.exec()启动的进程?
根据其VID / PID查找并popupUSB设备
Windows文件系统的看门狗Python脚本
通过html链接将parameter passing给一个程序
有没有什么办法让我找出哪个代理服务器PHP curl将通过连接?
在Java中读取二进制文件时,将小端转换为大端
python服务员作为一个Windows服务
如何编辑在Windowsregistry值(registry)通过代码在C#?
你告诉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; }
2.另一个解决方案>
并看看这个答案> 如何获得一个选项,以前用curl_setopt()设置?
3.重写curl_setopt()函数
http://PHP.net/manual/en/function.override-function.PHP
PS你应该可能需要http://PHP.net/manual/en/function.rename-function.PHP
4.使用runkit来覆盖函数
http://PHP.net/manual/en/book.runkit.PHP
如果它使用与Windows配置相同的,则应该可以像这样找到它(未经测试,因为我没有Windows服务器):
<?PHP $proxyserverString = shell_exec('reg query "HKEY_CURRENT_USERSoftwareMicrosoftwindowsCurrentVersionInternet 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或类似网站发出curl请求,并检查html响应以找出您正在使用的代理(如果您是)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。