首页 > 解决方案 > 如何检查以 tld 结尾的域是真实域还是本地域

问题描述

我正在做一个程序,我必须使用用户提供的电子邮件地址。

该应用程序还应与本地电子邮件服务器一起使用。

因为有些公司使用本地电子邮件地址,例如 john.doe@deployment.mycompany,所以我的问题是,我如何确定给定的电子邮件地址是本地的还是公开的。

这是用于检查 IP 地址的代码,看起来效果不错,但是,我希望它也可以与域名一起使用。任何想法我该怎么做?

        public static bool IsLocal(string host)
        {
            try
            {
                var hostIPs = Dns.GetHostAddresses(host);

                var localIPs = Dns.GetHostAddresses(Dns.GetHostName());

                foreach (var hostIP in hostIPs)
                {
                    if (IPAddress.IsLoopback(hostIP)) return true;

                    foreach (var localIP in localIPs)
                    {
                        if (hostIP.Equals(localIP)) return true;
                    }
                }
            }
            catch { }

            return false;
        }

标签: c#.netnetworking.net-coredns

解决方案


推荐阅读