如何在 .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();
});