我有一个简单的PHP页面,该页面生成随机json值并将其返回给用户。 我想知道哪个网站正在使用此页面来使用curl或javascript获取数据。 例如:
PHP页面:
$datas['random'] = ['firstValue'=>'Hello', 'secondValue'=>'world'];
header('Content-Type: application/json');
echo json_encode($datas);
现在代码将返回该值
{"random":{"firstValue":"Hello","secondValue":"world"}}
我想做的是:如果有人使用curl或javascript在他的网站中使用了此文件,我希望能够知道哪个网站正在使用它,哪个网站请求了它。
如果网站http://example.com在网站中使用了此代码
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState === 4) {
if (this.status === 200) {
resolve(this.responseText);
} else if (this.response == null && this.status === 0) {
var reason = new Error('OFFLINE');
reject(reason);
} else {
var reason = new Error('ERROR');
reject(reason);
}
}
};
xhttp.open("GET", "jsonpage.php", true);
xhttp.send();
我想知道网站http://example.php请求了文件,不使用额外的值jsonpage.php?website=example.com
有什么方法可以使用PHP来实现。
答案 0 :(得分:0)
您可以检查拨打jsonpage.php的一方的IP地址,但据我所知,不是域。
$_SERVER['REMOTE_ADDR']
包含连接方的真实IP地址。这是您可以找到的最可靠的值。
但是,它们可以位于代理服务器之后,在这种情况下,代理可能已设置了$_SERVER['HTTP_X_FORWARDED_FOR']
,但是该值很容易被欺骗。例如,它可以由没有代理的人设置,或者IP可以是来自代理后面的LAN的内部IP。
最后,如果您担心只有一些人可以访问jsonpage.php,我建议您实现公共/私有API密钥或oAuth以确保只有合适的人才能访问。
答案 1 :(得分:0)
您可以使用$_SERVER['HTTP_REFERER']
,它会告诉您哪个网站正在获取您的信息,但它并不可靠,因为很容易从源头进行更改。