如何在 .NET Core 中使用反向 DNS 查找来检测 Googlebot?
How do you detect Googlebot using reverse DNS lookup in .NET Core?
我尝试添加以下一行来输出反向 DNS 查找:
@System.Net.Dns.GetHostEntry(Request.HttpContext.Connection.RemoteIpAddress)
但它只returns GetHostEntry 函数输出。
我只需要这个 oneliner 放入一个 if 子句,这是检测 Googlebot 的推荐方法。
没有更多上下文,我不确定我是否完全理解。如果你想知道 RemoteIpAddress
是否来自 Google 使用 "one-liner" 你就差不多了。这样的东西对我有用
Dns.GetHostEntry(IPAddress.Parse("66.249.66.1")).HostName.Contains("googlebot.com");
那个IP地址也是known Google Bot IP address。希望对您有所帮助,但我还是不确定您要问的确切问题。
另一件需要注意的事情是,如果您坐在代理后面,您将需要添加如下内容以确保 headers 正确。
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.All;
options.ForwardLimit = 2;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
我尝试添加以下一行来输出反向 DNS 查找:
@System.Net.Dns.GetHostEntry(Request.HttpContext.Connection.RemoteIpAddress)
但它只returns GetHostEntry 函数输出。
我只需要这个 oneliner 放入一个 if 子句,这是检测 Googlebot 的推荐方法。
没有更多上下文,我不确定我是否完全理解。如果你想知道 RemoteIpAddress
是否来自 Google 使用 "one-liner" 你就差不多了。这样的东西对我有用
Dns.GetHostEntry(IPAddress.Parse("66.249.66.1")).HostName.Contains("googlebot.com");
那个IP地址也是known Google Bot IP address。希望对您有所帮助,但我还是不确定您要问的确切问题。
另一件需要注意的事情是,如果您坐在代理后面,您将需要添加如下内容以确保 headers 正确。
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.All;
options.ForwardLimit = 2;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});