簡體   English   中英

在socket.io中獲取客戶端的IPv4地址

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM