无框架Bun.serve环境下如何获取客户端远程IP?
在Bun v0.1.7内置HTTP服务器中获取客户端远程IP
在未使用代理的情况下,你可以通过Bun内置HTTP服务器的server对象获取客户端远程IP。你之前尝试的request.connection.remoteAddress、request.socket这类Node.js风格属性,在Bun的Request对象中确实未实现——因为Bun的HTTP服务基于Web标准Fetch API设计,标准Request本身不包含底层连接相关的IP信息。
可行的实现方式
改用Bun.serve()的完整写法,就能通过第二个参数server提供的requestIP()方法直接获取客户端IP:
Bun.serve({ port: 3000, fetch(request: Request, server: Server) { const remoteIp = server.requestIP(request) || 'UNKNOWN'; return new Response(remoteIp); }, });
关于你当前的简化写法
如果你坚持使用导出默认对象的简化写法,在Bun v0.1.7中没有办法直接获取客户端IP——这种写法没有暴露server对象,只能通过切换到完整的Bun.serve()写法来解决。
内容的提问来源于stack exchange,提问作者Roberto
相关产品推荐
相关产品推荐

