You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET 6 Web API中如何获取请求的客户端主机名

问题解答

这是完全符合预期的行为。

  • HttpContext.Request.Host.Host 获取的是请求目标的主机名,也就是你的Web API部署的服务器地址(比如例子里的api.api.com),它代表客户端请求要发送到的目标地址,而非发起请求的客户端所在主机名。

  • 如果想获取发起请求的客户端主机名,你需要读取请求头里的Referer(注意拼写是Referer而非Referrer)或者Origin字段:

    • Referer头会包含客户端发起请求的页面完整URL(比如https://example.example.com/page),你可以从中解析出主机名部分
    • Origin头会包含客户端所在的源(比如https://example.example.com),直接就是带协议的主机名

需要注意的是:

  • 这两个请求头都不是客户端必须发送的,部分场景下(比如直接通过工具发起请求、隐私模式下)可能会缺失
  • 如果你的API和客户端之间有反向代理、CDN等中间层,需要确保这些中间层正确转发原始请求头,否则你拿到的会是中间层的地址

内容的提问来源于stack exchange,提问作者humleflue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:30:43