PHP的CURL怎么使用HOSTS的配置?

未梦 发布于 2017/05/15 21:16
阅读 1K+
收藏 0

使用的是phpstudy,本机的host设置为如下:

127.0.0.1    t.com

访问127.0.0.1是空的,只有访问t.com才能打开网站。

现在使用cur获取 t.com/login.php 会直接访问到真实互联网站。

我在header头部加入 HOST:127.0.0.1,这样是访问的127.0.0.1默认网站了。

 

怎么实现curl请求的url和直接用过浏览器访问达到一样的效果?

加载中
0
开源红薯烹调技术专家
开源红薯烹调技术专家

HOST 要设置为t.com,url路径设置为127.0.0.1

0
开源红薯烹调技术专家
开源红薯烹调技术专家

curl_setopt($this->ch, CURLOPT_URL, 'http://127.0.0.1/');
curl_setopt($this->ch, CURLOPT_HTTPHEADER, $header);

这样的

未梦
未梦
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $this->GetHeader()); 我的curl是这样的
未梦
未梦
http://127.0.0.1/login.php Array ( [1] => Connection:keep-alive [2] => Upgrade-Insecure-Requests:1 [3] => Host:t.com 怎么这样还是不行呢?
0
开源红薯烹调技术专家
开源红薯烹调技术专家
function curl_post($host,$data,$url)
{
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL,$url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_HTTPHEADER,$host);
    $result = curl_exec ($ch);
    curl_close($ch);
    if ($result == NULL) {
        return 0;
    }
    return $result;
}


echo curl_post(['Host:t.com'],'','http://127.0.0.1/login.php');

本机测试通过,本机都不用配置host解析。只要绑好主机头

开源红薯烹调技术专家
开源红薯烹调技术专家
不明白你的意思,我的这个是访问本地80端口(且此端口是绑定的 t.com主机头),他并非直接访问的无主机头的127.0.0.1
未梦
未梦
这么是可以访问,但是出现的是404 ,没用用到t.com/login.ph 而是访问127.0.0.1/login.php,
未梦
未梦
我这里木有用,我的网站是用过t.com可以访问的。127.0.0.1是访问不了的
0
Fireimp
Fireimp

你的127.0.0.1是否与多个虚拟域名绑定了?

未梦
未梦
是的,绑定了很多个域名
返回顶部
顶部