假如我们使用curl请求一个网站,如果这个网站域名在本地host中也存在,curl默认会请求本地,但是我们可以自己设置解析到哪个ip。
(1).设置朋友的博客网站主机和ip,请求测试正确返回远程网站内容
<?php $ip = '47.106.110.119'; $host = 'www.php20.cn'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ip); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); $headers = array(); $headers[] = 'Host:'.$host; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); file_put_contents('1.txt', $result); var_dump($result); //输出<!DOCTYPE html><html><head><meta charset="UTF-8"><title>仙士可博客,技术博客,php,技术分享,php博客,</title>
(2).设置请求ip为本地,输出本地网站的内容
<?php $ip = '127.0.0.1'; $host = 'www.php20.cn'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ip); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); $headers = array(); $headers[] = 'Host:'.$host; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); file_put_contents('1.txt', $result); var_dump($result); //输出本地站点
未测试https
也可以试试百度的方法
curl_setopt($curl, CURLOPT_INTERFACE, 'ip');