From f997976fd2670d882e3e6cc1d69e831fd8e690fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=9B=BD=E4=BC=9F?= <366193849@qq.com> Date: Sat, 6 Nov 2021 12:45:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=9F=E5=90=8D=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FastGithub.HttpServer/HttpReverseProxyMiddleware.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/FastGithub.HttpServer/HttpReverseProxyMiddleware.cs b/FastGithub.HttpServer/HttpReverseProxyMiddleware.cs index e29ee47..e4ea8aa 100644 --- a/FastGithub.HttpServer/HttpReverseProxyMiddleware.cs +++ b/FastGithub.HttpServer/HttpReverseProxyMiddleware.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System; using System.Diagnostics.CodeAnalysis; +using System.Net; using System.Threading.Tasks; using Yarp.ReverseProxy.Forwarder; @@ -79,7 +80,7 @@ namespace FastGithub.HttpServer } // 未配置的域名,但仍然被解析到本机ip的域名 - if (OperatingSystem.IsWindows() && host.Host.Contains('.')) + if (OperatingSystem.IsWindows() && IsDomain(host.Host)) { this.logger.LogWarning($"域名{host.Host}可能已经被DNS污染"); domainConfig = defaultDomainConfig; @@ -87,6 +88,12 @@ namespace FastGithub.HttpServer } return false; + + // 是否为域名 + static bool IsDomain(string host) + { + return IPAddress.TryParse(host, out _) == false && host.Contains('.'); + } } ///