📜  Node.js socket.remoteAddress() 方法(1)

📅  最后修改于: 2023-12-03 15:33:09.950000             🧑  作者: Mango

Node.js socket.remoteAddress() 方法

socket.remoteAddress() 方法是 Node.js 中 Socket 类的一个属性,用于获取远程连接的 IP 地址。通过该方法,程序员可以获取到客户端连接的 IP 地址,从而获取相关的真实地理位置或者在服务器端做一些安全限制。

语法
socket.remoteAddress()
返回值

该方法返回字符串类型的客户端 IP 地址,如果是 TCP 连接,则会返回链接的套接字的远程 IP 地址。如果是 UDP 数据报传输,则返回发送数据报的 IP 地址。

示例

以下代码展示了如何使用 socket.remoteAddress() 方法来获取客户端的 IP 地址。

const net = require('net');

const server = net.createServer((socket) => {
  console.log(`Client connected: ${socket.remoteAddress}`);
});

server.listen(8080, () => {
  console.log('Server started on port 8080');
});

上述代码中,我们创建了一个 TCP 服务器,监听 8080 端口,并在连接事件中打印客户端的 IP 地址。在运行该代码后,当客户端通过命令 telnet server_ip_addr 8080 连接时,我们可以看到控制台输出类似如下的信息。

Client connected: 127.0.0.1
注意事项
  • 在使用 socket.remoteAddress() 方法前,请确保该方法所在的 socket 已经建立了连接,否则会得到 undefined 或者错误的 IP 地址。
  • 由于客户端可能使用代理或者 NAT 网络,程序员在获取客户端 IP 地址时需要进行额外的处理来避免假 IP 地址的干扰。