1

在我的 asp.net MVC 应用程序中,我想知道这是否是正在调用我的其中一个网址的 facebook(当我的网站的链接被共享为 FB 状态并且 FB 试图获取一些用于 opengraph 的元标记时)。我试过 URlReferrer,它是空的,和 UserHostName,它显示一个 IP 地址。

4

2 回答 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 回答