微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过PHP检查client_ip时,我仍然收到了Tor的IP地址

如何解决通过PHP检查client_ip时,我仍然收到了Tor的IP地址

我的PC上运行了node.js,我正试图通过Tor访问我的PHP站点

我在Mac上安装了Tor,配置了..并可以开始使用:

  • ✅ControlPort
  • ✅HashedControlPassword
  • ✅HiddenServiceDir / HiddenServicePort
  • ✅每个请求的RefreshTorSession
  • ✅torrc(配置)已启用

这是我的node.js脚本,我希望在其中隐藏我的IP:

var tr = require('tor-request');
tr.TorControlPort.password = '****'
    tr.setTorAddress('localhost',9050);
    
function run() {
    tr.newTorSession( (err) =>
    {
        requestIP();
        return;
    });
}

function requestIP() {
    tr.request({
       url: "https://api.ipify.org",// when change to my  PHP site.. IP still detected
        headers: {
            'user-agent': 'meo'
        }
    },function(err,res,body) {
        if (res.statusCode == 200) {
                console.log("Your public (through Tor) IP is: " + body);
        } else {
            console.log('error ' + err);
        }
    })
}
run();

这是我在PHP网站上检测IP的方法

function getRealIpAddr(){
 if ( !empty($_SERVER['HTTP_CLIENT_IP']) ) {
  // Check IP from internet.
  $ip = $_SERVER['HTTP_CLIENT_IP'];
 } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
  // Check IP is passed from proxy.
  $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
 } else {
  // Get IP address from remote address.
  $ip = $_SERVER['REMOTE_ADDR'];
 }
return $ip;
}

检查我的示例node.js脚本,您将看到我调用api.ipify.org ..结果是预期的(IP更改)。当我尝试访问存储IP访问者的PHP网站时出现问题。我正在使用相同的node.js脚本..我看到我的真实IP已作为IP列表被跟踪到那里,我认为这是HTTP_X_FORWARDED_FOR

事实证明,HTTP_X_FORWARDED_FOR有时有时会带有逗号 分隔的IP地址列表-因此我们实际上需要 在执行我们的操作之前,先获取该列表中的最后一个IP地址 转换为整数。

当通过Tor网络通过node.js调用PHP时,我需要解决此问题并隐藏我的IP。 奇怪的是,当我使用Tor浏览器调用PHP时,它可以正常工作!!! Tor上是否有任何高级设置可以完全隐藏我的IP?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。