首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET Web Api中获取Web API用户IP地址和HostName

问在ASP.NET Web Api中获取Web API用户IP地址和HostName
EN

Stack Overflow用户
提问于 2013-03-30 06:58:29
回答 1查看 22.3K关注 0票数 2

我托管了在ASP.net中开发的Web。我想如果有人调用我的应用程序接口,以便我可以登录数据库,以便稍后,如果我想拒绝来自特定id使用C#的请求。

获取消费者IP和HostName的最佳实践是什么?

代码语言:javascript
复制
public static string GetIP4Address()
  {
    string IP4Address = String.Empty;

    foreach (IPAddress IPA in Dns.GetHostAddresses(Request.ServerVariables["REMOTE_ADDR"].ToString())))
    {
      if (IPA.AddressFamily.ToString() == "InterNetwork")
      {
        IP4Address = IPA.ToString();
        break;
      }
    }

    if (IP4Address != String.Empty)
    {
      return IP4Address;
    }

    foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
    {
      if (IPA.AddressFamily.ToString() == "InterNetwork")
      {
        IP4Address = IPA.ToString();
        break;
      }
    }

    return IP4Address;
  }
EN

回答 1

Stack Overflow用户

发布于 2013-03-30 07:21:48

解析名字听起来不是个好主意。如果从dns无法解析的客户端计算机调用您,该怎么办?我告诉你,dns耗时很长,然后会失败,因为你必须捕获一个异常,并将其记录为“未知主机名”。

至于请求地址,只需通过以下命令获取

代码语言:javascript
复制
 HttpContext.Current.Request.UserHostAddress
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15712720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档