C# 在ASP.NET Web Api中获取Web Api使用者IP地址和主机名
我主持了在ASP.net中开发的Web Api。我想知道是否有人调用我的API,以便我可以稍后登录数据库,如果我想使用C#拒绝来自特定id的请求 获取消费者IP和主机名的最佳实践是什么C# 在ASP.NET Web Api中获取Web Api使用者IP地址和主机名,c#,asp.net-web-api,C#,Asp.net Web Api,我主持了在ASP.net中开发的Web Api。我想知道是否有人调用我的API,以便我可以稍后登录数据库,如果我想使用C#拒绝来自特定id的请求 获取消费者IP和主机名的最佳实践是什么 public static string GetIP4Address() { string IP4Address = String.Empty; foreach (IPAddress IPA in Dns.GetHostAddresses(Request.ServerVariables["R
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;
}
解析名称听起来是个坏主意。如果您是从dns无法解析的客户端计算机调用的,该怎么办?我告诉你,dns需要花费很长时间,然后失败,你必须捕获一个异常并以“未知主机名”的身份登录 至于请求地址,只需使用
HttpContext.Current.Request.UserHostAddress
@SOFUser-HttpContext.Current.Request.UserHostName`@SOFUser-如果你阅读了那篇非常老的文章中的评论,你会发现他看到的标题很容易被伪造,这不是推荐的方法。