如何让OS X在www请求头中发送LOCAL IP地址?


0

我需要能够在向网站发出请求时发送计算机的本地IP地址以及标题。类似于你可以获得_SERVER["REMOTE_ADDR"]php的方式,但是本地ip(例如192.168.100.1)这将是一个内部网,因此可以控制环境。任何东西都可以安装在电脑上等等。

这将在Mac OS X计算机上。希望Safari和Firefox都能使用。但愿意使用一个。

有谁知道这是否可能?非常感谢。

Answers:


0

我想这会以某种方式添加一个X-Forwarded-For标头,就像一些代理服务器那样。但是,虽然不是官方标准,但我想知道它是否“允许”来自私人范围的IP地址。

如果您可以使您的浏览器使用GlimmerBlocker代理,那么您可以通过修改请求规则添加此类标头:

  • 添加新规则(可选,首先添加新的过滤器以存储规则)
  • 规则类型窗格中,将“操作”设置为“ 修改请求”
  • 请求窗格中添加:

    gb.request.headers ['X-Forwarded-For'] ='192.168.100.1';
  • 或者,要使用实际的本地IP地址,我假设

    var myIp;
    for(var k in gb.network.interfaces){
      var x = gb.network.interfaces [k];
      如果(!x.IPv4){
        继续;
      }
      for(var i in x.IPv4.addr){
        var ip = x.IPv4.addr [i];
        //接口可以有多个IP地址,但假设
        //它只有一个不是localhost的地址:
        if(ip ==“127.0.0.1”){
          继续;
        }
        myIp = ip;
        打破;
      }
    }
    gb.request.headers ['X-Forwarded-For'] = myIp;
    
  • (可选)仅将规则应用于某些主机。

(我也很好奇这个问题的原因 ......)


啊,是的。在硬件级别执行此操作完全有意义。我将调查当前的代理,看看我们能做些什么。谢谢。至于为什么......这是一个内联网网站。根据本地IP固定地址(基于mac地址分配),我们可以了解计算机的位置。便宜又方便。
路易斯W 2010年

@Louis:那么,有多个路由器的内联网?或者是不同细分市场中的Web服务器?在简单的Intranet中,浏览器将使用其本地IP地址连接到服务器,对吗?那将简单地结束_SERVER["REMOTE_ADDR"]- 但我猜你测试并找到了其他一些地址。(我更改了JavaScript;我的第一个未经测试的版本发送127.0.0.1 ...)
Arjan 2010年

不确定路由器数量的设置。我现在不在现场。我在本地进行了测试(我们有1个基于macaddr分配ips的路由器),REMOTE_ADDR作为我们面向公众的IP(所有计算机都相同)。
路易斯W 2010年

1
@Louis,如果您现在正在使用代理,那么可能只需要设置工作站以将现有代理用于本地地址?如果Web服务器和工作站插入同一路由器,那么当不使用任何代理时,我希望工作站向该服务器显示其本地IP地址。(但我不是网络专家;如果你知道确切的设置,那么可能在serverfault.com询问给你一个更简单的解决方案。)
Arjan 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.