将代理与file_get_contents一起使用

时间:2013-01-26 08:26:39

标签: php proxy file-get-contents

我从网站上获取应用程序的数据,比如说x.com。 我使用php函数file_get_contents()来获取数据。 可以肯定的是,我的服务器的IP地址将显示在x.com的日志中。 有没有办法在不使用代理的情况下隐藏我的服务器的IP?

如果我有代理,如何将其与file_get_contents()一起使用?

我需要在HTTP POST和HTTP GET方法中发送请求

2 个答案:

答案 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

希望能节省一些时间!