在我的asp.net MVC应用程序中,我试图知道这是否是Facebook正在调用我的一个网址(当我的网站链接作为FB状态共享时,FB尝试获取一些元标记opengraph)。我已经尝试了空的URlReferrer和显示IP地址的UserHostName。
答案 0 :(得分: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
}
答案 1 :(得分: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页面上的共享链接。