【问题标题】:Find Client Public IP Address Inside Controller of rest web API with out calling external api在不调用外部 api 的情况下,在 REST Web API 的控制器内查找客户端公共 IP 地址
【发布时间】:2017-11-16 10:50:14
【问题描述】:

我有一个 Web API,我想在我的控制器函数中捕获所有传入的请求公共 IP 地址

【问题讨论】:

  • 您想从HTTPRequestMessage 还是从Request 获取客户端的IP 地址?
  • 您能定义一下您所说的公共 IP 地址是什么意思吗?您已经在下面的答案中被告知如何操作。
  • 我想要客户端内部 IP 而不是托管 IP 地址,作为参考,请在谷歌中搜索我的 IP,您将获得您的内部 IP 地址。@Crowcoder
  • 不,那是公网IP。除非客户端和服务器在同一网络上,否则您永远无法获得内部 IP。
  • 我想要在 Asp.net web 表单中显示我的 IP 的公共 IP,下面的代码工作正常,但我想要在 web API 控制器 @Crowcoder

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


【解决方案1】:

检查下面的代码,这必须返回您客户端的 IP 地址

   protected string GetUser_IP()
    {
        string VisitorsIPAddr = string.Empty;
        if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
        {
            VisitorsIPAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
        }
        else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
        {
            VisitorsIPAddr = HttpContext.Current.Request.UserHostAddress;
        }
    return VisitorsIPAddr;
    }

更多帮助:Get public IP Address

【讨论】:

  • 我已经试过了。它返回的是托管 IP 地址而不是公共 IP 地址
  • @manassahu,我回答了 2 个类似的问题,但请求者仍然不满意我的回答。每当您获得读取客户端 IP 的工作功能时,只需发布​​即可。您的回答将帮助我和其他人。
  • 请检查此 API。我希望这个 API api.ipify.org?format=json@Prasad telkikar 返回的 IP 地址相同
猜你喜欢
  • 1970-01-01
  • 2020-10-18
  • 2016-10-14
  • 2022-11-22
  • 1970-01-01
  • 2018-02-17
  • 2011-10-25
  • 1970-01-01
  • 2014-04-25
相关资源
最近更新 更多