获取来自我网站的请求

时间:2019-03-04 06:29:05

标签: javascript php curl

我有一个简单的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来实现。

2 个答案:

答案 0 :(得分:0)

您可以检查拨打jsonpage.php的一方的IP地址,但据我所知,不是域。

$_SERVER['REMOTE_ADDR']包含连接方的真实IP地址。这是您可以找到的最可靠的值。

但是,它们可以位于代理服务器之后,在这种情况下,代理可能已设置了$_SERVER['HTTP_X_FORWARDED_FOR'],但是该值很容易被欺骗。例如,它可以由没有代理的人设置,或者IP可以是来自代理后面的LAN的内部IP。

最后,如果您担心只有一些人可以访问jsonpage.php,我建议您实现公共/私有API密钥或oAuth以确保只有合适的人才能访问。

进一步阅读:How to get the client IP address in PHP

答案 1 :(得分:0)

您可以使用$_SERVER['HTTP_REFERER'],它会告诉您哪个网站正在获取您的信息,但它并不可靠,因为很容易从源头进行更改。