千家信息网

在服务端应用中怎样获得客户端IP

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,今天就跟大家聊聊有关在服务端应用中怎样获得客户端IP,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如果有 x-forwarded-for 的请
千家信息网最后更新 2025年01月29日在服务端应用中怎样获得客户端IP

今天就跟大家聊聊有关在服务端应用中怎样获得客户端IP,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

如果有 x-forwarded-for 的请求头,则取其中的第一个 IP,否则取建立连接 socket 的 remoteAddr。

x-forwarded-for 基本已成为了基于 proxy 的标准HTTP头,格式如下,可见第一个 IP 代表其真实的 IP,可以参考 MDN X-Forwarded-For[1]

X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178
X-Forwarded-For: , ,

以下是 koa 获取 IP 的方法

  get ips() {
const proxy = this.app.proxy;
const val = this.get(this.app.proxyIpHeader);
let ips = proxy && val
? val.split(/\s*,\s*/)
: [];
if (this.app.maxIpsCount > 0) {
ips = ips.slice(-this.app.maxIpsCount);
}
return ips;
},

get ip() {
if (!this[IP]) {
this[IP] = this.ips[0] || this.socket.remoteAddress || '';
}
return this[IP];
},

看完上述内容,你们对在服务端应用中怎样获得客户端IP有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0