在PHP中通过cURL请求源服务器域

在PHP中通过cURL请求源服务器域,php,curl,Php,Curl,我有两台web服务器,服务器A和服务器B。它们都运行PHP5+Apache+Ubuntu环境 服务器A通过PHP中的cURL向服务器B发送请求。我想获取请求的源服务器域。据我所知,$\u SERVER['REMOTE\u ADDR']可以获取源服务器(服务器A)的IP。如果我想获得服务器A的域,我如何获得它 p、 服务器A承载多个域,因此反向IP解析在这种情况下不起作用 代码如下: $data = array('user' => $user, 'pass' => $pass); $

我有两台web服务器,服务器A和服务器B。它们都运行PHP5+Apache+Ubuntu环境

服务器A通过PHP中的cURL向服务器B发送请求。我想获取请求的源服务器域。据我所知,
$\u SERVER['REMOTE\u ADDR']
可以获取源服务器(服务器A)的IP。如果我想获得服务器A的域,我如何获得它

p、 服务器A承载多个域,因此反向IP解析在这种情况下不起作用

代码如下:

$data = array('user' => $user, 'pass' => $pass);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://ServerB/handler.php');
curl_setopt($ch, CURLOPT_PORT, 80);
curl_setopt($ch, CURLOPT_VERBOSE, 0); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

$ans_xml = curl_exec($ch);

正如上面提到的stats Pelshoff,您应该使用自定义HTTP头:

此外,您还可以:

$icomefrom = $_POST['icomefrom'];

这样,您就不必担心虚假的引用了。

您可以将其添加为http头吗?还是作为数据字段之一?我不认为常规的HTTP请求会将域添加到头中。这太完美了!但是如何防止有人伪造相同的请求?你能用密码保护脚本所在的文件夹吗?当然可以,但你在问题中没有提到任何问题,而且,我问过你是否能用密码保护脚本所在的文件夹,但你没有回答,所以,我不知道我能帮你什么。我已经更新了答案,这样你就不用担心虚假的推荐人了,看看吧。阅读更新的答案,但是人们也可以使用参数提出同样的请求。
$domain = $_SERVER["SERVER_NAME"]
$data = array('user' => $user, 'pass' => $pass, 'appid' => 'pukeko', 'icomefrom' => $domain);
$icomefrom = $_POST['icomefrom'];