2015-06-17 57 views
1

我想获取使用Socket.io连接我的Node.js服务器的客户端的IPv4 IP地址1.3.5如何使用Sockets.io + Node.js服务器获取客户端IPv4地址(不是IPv6)

我尝试了大多数在SO中建议的方式,但其中大多数都是或不赞成或者他们返回一个IPv6地址。

是返回某个值的唯一的事情就是

socket.request.connection.remoteAddress 

,但它是在一个IPv6格式。

任何获得IPv4地址的方法?

+0

你尝试过什么办法呢? [这仍然适用于我](http://stackoverflow.com/questions/26477206/get-public-ip-address-for-node-js-application/26478095#26478095)。注意:什么是快速中间件的'req',在Socket中它是'socket.request' – laggingreflex

+0

@laggingreflex这是唯一返回的东西:socket.request.connection.remoteAddress并且它不是一个公共ipv4地址... – Vandervidi

+0

什么是错的用ipv6? – Blubberguy22

回答

3

如果客户端使用IPv6连接,则无法获得IPv4地址。 如果您想拥有IPv4地址,则需要关闭服务器上的IPv6支持。

比我使用它来获取IP地址 var ip = socket.client.request.headers['x-forwarded-for'] || socket.client.conn.remoteAddress || socket.conn.remoteAddress || socket.request.connection.remoteAddress;

相关问题