Ich habe die ganze SO durchsucht, aber ich konnte meine Antwort nicht finden. Ich möchte Client-IP-Adresse mit Socket io erhalten. v2.0.3
app.jsWie bekomme ich die Client-IP-Adresse mit socket.io?
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
/// other imports ...
//with or without this line nothing changes
io.set('transports', ['websocket']);
app.use(function(req, res, next) {
req.db = db;
next();
});
require('./sockets')(io, db);
sockets.js
module.exports = function(io, db) {
io.on('connection', function(socket) {
var ip = socket.request.socket.remoteAddress ; // undefined
//var ip = socket.handshake.headers["x-forwarded-for"]; undefined
//var ip = socket.handshake.headers["X-Forwarded-For"]; undefined
});
});
sodass dieser Code nicht funktioniert:
var ip = socket.request.socket.remoteAddress
dieses nicht eather funktioniert:
var ip = socket.handshake.headers["x-forwarded-for"];
//var ip = socket.handshake.headers["X-Forwarded-For"];
Witz h dieses nginx config:
server {
listen 80;
server_name example.com;
location/{
proxy_pass http://localhost:3000;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
ist es trotzdem, die Client-IP-Adresse mit socket.io zu bekommen?
Was tun Sie, wenn Sie versuchen, die erste mit ? – Wright
@Wright: 'undefined' – smoqadam
Wenn Sie einen Teil des Codes veröffentlichen könnten, um einen Kontext für den Verwendungsort anzugeben, wäre dies hilfreich. Für mich geht das. – Wright