在我的 asp.net MVC 应用程序中,我想知道这是否是正在调用我的其中一个网址的 facebook(当我的网站的链接被共享为 FB 状态并且 FB 试图获取一些用于 opengraph 的元标记时)。我试过 URlReferrer,它是空的,和 UserHostName,它显示一个 IP 地址。
问问题
208 次
2 回答
0
您可以按照 Tejs 的建议进行操作,例如:
IPHostEntry IpEntry = Dns.GetHostByAddress(HttpContext.Current.Request.UserHostAddress);
//OR
IPHostEntry IpEntry = Dns.GetHostByAddress(HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
if(IpEntry.HostName.Contains("facebook.com"))
{
//Coming from facebook.com
}
于 2012-04-24T19:26:46.020 回答
0
似乎可以这样做:
if ((!string.IsNullOrWhiteSpace(HttpContext.Request.UserAgent) && HttpContext.Request.UserAgent.ToLower().Contains("facebookexternalhit")) ||
((HttpContext.Request.UrlReferrer != null) && HttpContext.Request.UrlReferrer.Host.ToLower().Contains("facebook.com")))
通过这种方式,我知道 Facebook 是否正在获取 opengraph 数据,或者是否有人单击了 Facebook 页面上的共享链接。
于 2012-04-24T19:31:23.567 回答