黄芪

首页 » 常识 » 常识 » 服务器端如何获取客户端IP地址
TUhjnbcbe - 2025/1/4 21:37:00
让白癜风患者直面异样眼光 http://hunan.ifeng.com/a/20170626/5773085_0.shtml

这是一道腾讯的面试题

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

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

X-Forwarded-For:.0..,70.41.3.18,...X-Forwarded-For:client,proxy1,proxy2

以下是koa获取IP的方法

getips(){constproxy=this.app.proxy;constval=this.get(this.app.proxyIpHeader);letips=proxyval?val.split(/\s*,\s*/):[];if(this.app.maxIpsCount0){ips=ips.slice(-this.app.maxIpsCount);}returnips;},getip(){if(!this[IP]){this[IP]=this.ips[0]

this.socket.remoteAddress

;}returnthis[IP];}

作者:shanyue

链接:

1
查看完整版本: 服务器端如何获取客户端IP地址