当前位置: 首页 > 面试题库 >

在socket.io中使用代理时未获取远程地址

哈宪
2023-03-14
问题内容

在我的socket.io代码中,

socket.sockets.on('connection', function(client){ 
    var ip = client.handshake.address.address;
    ..
}

ip始终返回127.0.0.1,这是因为服务器位于代理后面。如何正确获取远程地址?

编辑:我正在使用http代理


问题答案:

是的,这对我有用。

client.handshake.headers['x-forwarded-for'] || client.handshake.address.address;

我正确获取了远程IP地址而不是127.0.0.1



 类似资料:
  • 问题内容: 在Node.js服务器中使用socket.IO时,是否有一种简单的方法来获取传入连接的IP地址?我知道您可以从标准的HTTP连接中获得它,但是socket.io有点不同。 问题答案: 好的,从0.7.7版本开始可用,但是不像lubar所描述的那样。我最终需要通过git hub上的一些提交日志来解析该问题,但是下面的代码现在确实对我有用:

  • 问题内容: 我需要从PC获取MAC地址。到目前为止,我已经编写了代码(这只是代码的一小部分)。 此代码查找运行它的PC的MAC,但是我需要获取远程MAC。 问题答案: 您无法在Java中做到这一点,并且如果您进行了一些研究,您会发现MAC地址除了以太网层和与其相连的NIC之外并没有什么用。

  • 问题内容: 该代码用于返回我的本地IP地址为192.xxx.x.xxx,但现在它返回127.0.0.1。请帮助我为什么相同的代码返回不同的值。在Linux OS上需要注意些什么吗? 问题答案: 127.0.0.1是回送适配器-这是对(有些恶意的)问题“我的IP地址是什么?”的正确答案。 问题是该问题有 多个 正确答案。 编辑:的文档说: 如果有安全管理器,则使用本地主机名并以-1作为其参数来调用其

  • 我正在尝试找出如何获取远程代理上现有队列的列表。 看起来我可以通过添加一条建议消息(我还没有实现)来监听队列的创建/销毁,但是我需要在启动时获取所有现有的队列。 看起来我可以用getDestinationMap做到这一点: http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/region/Region.html#g

  • 问题内容: 我已经在项目中编写了Rest Web服务.Web服务调用可能来自其他计算机。因此我需要通过REST Web服务来查找IP地址。 通过此链接 request.getRemoteAddr() 来使用它。 但是我不能使用getRemoteAddr()。因为我的请求和响应都是xml格式。 我在REST服务.Tomcat服务器中使用了post方法。我已将请求发送为xml格式。 我如何获得IP地址

  • 我正在尝试设置Kafka connect sink连接器。Kafka connect是Kafka connect worker(confluent-3 . 2 . 0)的一部分。我有一个Kafka broker (confluent-3.2.0)在机器a上运行。我想在另一台机器B上设置Kafka-connect-sink连接器来使用消息,使用一个定制的Kafka-connect-sink连接器ja