curl 使用php获取客户端域名[duplicate]

mxg2im7a  于 4个月前  发布在  PHP
关注(0)|答案(1)|浏览(77)

此问题在此处已有答案

Get callers (CURL) IP and SERVER_NAME - PHP(1个答案)
6个月前关闭。
我在使用HTTP_REFERER.获取域名时遇到问题,情况是这样的:
http://www.example.com发送一个curl帖子到我的服务器。问题是,example.com不会在curl_setopt(CURLOPT_REFERER)中发送他们的URL。所以我的服务器端可以获得他们的域名吗?
非常感谢你帮助我
我的代码到目前为止:
在abc.com端

$data = array('username' => $username ,
              'email' => $email,
              'phone' => $phone );

    $string = http_build_query($data);
    // For debugging purpose
    // echo $string;

    $ch =  curl_init("http://localhost/test/str_pos.php");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    curl_close($ch);

    header("Location: str_pos.php");

字符串
在我的服务器端:

$domain = parse_url($_SERVER['HTTP_REFERER']);

    if (isset($domain['host'])) {

        echo $domain['host'];
    }
    else{
        echo "No host found";
    }

ibps3vxo

ibps3vxo1#

我建议使用一个不同的命令,而不是HTTP_REFERER,尝试HTTP_HOSTSERVER_NAME
范例:
$domain = parse_url($_SERVER['HTTP_HOST']);
$domain = parse_url($_SERVER['SERVER_NAME']);
HTTP_REFERER-将用户代理引用到当前页面的页面地址(如果有的话)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些用户代理提供修改HTTP_REFERER的功能。简而言之,它不能真正被信任。
来源http://php.net/manual/en/reserved.variables.server.php
查看以下线程herehere

相关问题