1

私のasp.net MVCアプリでは、これが私のURLの1つを呼び出しているFacebookであるかどうかを調べようとしています(私のサイトへのリンクがFBステータスとして共有され、FBがopengraphのメタタグを取得しようとした場合)。空の URlReferrer と、IP アドレスを示す UserHostName を試しました。

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 に答える