![](/img/trans.png)
[英]How to get client IPv4 address (not IPv6) using Sockets.io + Node.js server
[英]Get IPv4 Address of client in socket.io
當我在socket.on('connection')期間記錄'socket'對象時,得到以下信息: _peername: { address: '::1', family: 'IPv6', port: 57535 }
在套接字連接期間如何將系列更改為IPv4?
我在周圍測試,發現在客戶端上是否使用
var socket = io('http://localhost:8000', { transports: ['websocket']});
socket.handshake.address
返回::1
如果我用
var socket = io('http://server_ip:8000', { transports: ['websocket']});
socket.handshake.address
返回::ffff:ipv4address
創建http實例時,請確保將連接綁定到IPv4地址。 例:
const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
http.listen(8000, '0.0.0.0', function(){
console.log('listening on *:8000');
});
這應該夠了吧。 :)
這應該在IPv4上偵聽; 試試看,讓我知道...
var net = require('net');
var server = net.createServer();
server.on('connection', handleConnection);
server.listen({
host: 'localhost',
port: 8000,
exclusive: true
}, function() {
console.log('server listening to %j', server.address());
});
輸出:
server listening to {"address":"127.0.0.1","family":"IPv4","port":8000}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.