微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

php怎么用fiddler对程序中的curl,file_get_contents抓取函数抓包

测试 aide_941 38℃

php怎么用fiddler对程序中的curl,file_get_contents抓取函数抓包

    平常使用fiddler抓包时,并不能抓取PHP程序中执行的远程获取函数的数据包,这是因为fiddler里默认设置的都是抓取8888端口的数据包,见下图fiddler设置:

php怎么用fiddler对程序中的curl,file_get_contents抓取函数抓包

那如果要查看排查程序中使用的curl的get和post方法,以及使用file_get_contents方法获取数据时的数据包怎么实现呢?其实也很简单。

curl里面有一项设置:CURLOPT_PROXY,即设置代理的地址,既然curl抓取8888端口的数据包,那curl执行get和post时通过8888端口代理的话,就能抓取到数据了。只要在curl_init()初始化之后,执行:

$ch = curl_init();

curl_setopt($ch, CURLOPT_PROXY,’127.0.0.1:8888′);

就能抓取到curl时的get和post数据包了。

file_get_contents方法也是一样,不过一般我们很少使用代理,而且估计大部分使用这个方法的时候很少用其它的参数,一般传入一个url参数就完事了。不过file_get_contents其它参数还真有不少,要实现file_get_contens抓包,方法如下:

$url = “http://www.04007.cn”;
$ctx = stream_context_create(array(
‘http’ => array(

‘timeout’ => 5,
‘proxy’ => ‘127.0.0.1:8888’, //在这里输入代理的地址
‘request_fulluri’ => True,)
)
);
$result = file_get_contents($url, False, $ctx);
echo $result;

是不是看上去没有问题了?那就试一下吧,结果呢,是下面这个样子:

php怎么用fiddler对程序中的curl,file_get_contents抓取函数抓包

是什么问题呢?很简单,看提示里的英文吧,加个字符就OK了。

转载请注明:SuperIT » php怎么用fiddler对程序中的curl,file_get_contents抓取函数抓包

喜欢 (0)or分享 (0)