【问题标题】:How to get client domain name or client IP Address which is trying to call web api in web api如何获取试图在 web api 中调用 web api 的客户端域名或客户端 IP 地址
【发布时间】:2022-11-22 22:34:44
【问题描述】:

我在 Web API 中做一个项目,所以我想获取试图调用我的 Web API 的客户端域名或客户端 IP 地址。 有没有办法得到相同的。 我在等待您宝贵的回应。

【问题讨论】:

    标签: c# asp.net ajax asp.net-web-api asp.net-ajax


    【解决方案1】:

    您可以通过以下方式获取当前上下文中的 IPv6 地址:

    string IPv6 = HttpContext.Current.Request.UserHostAddress;
    

    【讨论】:

    • 谢谢,但是,如果我这样使用,我会得到这样的价值::1只是,但我想要适当的域名。如何得到它?
    【解决方案2】:

    HttpContext.Request.Headers.Origin

    以上将为您提供域名。对于 IP 地址,this post 应该会给你详细信息。

    域名包含在您服务器上的每个请求中。

    如果您在浏览器(例如 chrome)的 devtools 中打开网络选项卡,请检查请求标头,您会发现 key-valueoriginscheme://sub.domain.extension,如 https://mail.google.com。在 Asp.Net Core 中,您可以在 HttpContext.Request.Headers.Origin 中找到它作为对象属性。

    HttpContext.Request.Headers 它本身就是一个key-value-pair 字典,因此,您可以使用HttpContext.Request.Headers["origin"] 访问原始标头或与此相关的任何其他标头。

    【讨论】: