我从网站上获取应用程序的数据,比如说x.com。 我使用php函数file_get_contents()来获取数据。 可以肯定的是,我的服务器的IP地址将显示在x.com的日志中。 有没有办法在不使用代理的情况下隐藏我的服务器的IP?
如果我有代理,如何将其与file_get_contents()一起使用?
我需要在HTTP POST和HTTP GET方法中发送请求
答案 0 :(得分:21)
test.php使用http://ifconfig.me/ip
从http://www.php.net/manual/en/function.file-get-contents.php
修改的代码<?php
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n",
'proxy' => 'tcp://221.176.14.72:80',
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://ifconfig.me/ip', false, $context);
var_dump($file);
答案 1 :(得分:0)
绝对赞同农民1992。
对于因{+ 1}}而不是SSL +代理问题的任何人,PHP的stream_context_create存在一个已知错误:
https://bugs.php.net/bug.php?id=63519
幸运的是,解决方法很简单。基本上,上下文创建者在解析&#34; https&#34;目标URL代理和SSL配置。您只需在SSL配置中设置 SNI_server_name :
file_get_contents
希望能节省一些时间!