Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查tld结尾的域是真实域还是本地域_C#_.net_Networking_.net Core_Dns - Fatal编程技术网

C# 如何检查tld结尾的域是真实域还是本地域

C# 如何检查tld结尾的域是真实域还是本地域,c#,.net,networking,.net-core,dns,C#,.net,Networking,.net Core,Dns,我正在做一个程序,我必须处理用户提供的电子邮件地址 该应用程序还应与本地电子邮件服务器配合使用 因为有些公司使用像john这样的本地电子邮件地址。doe@deployment.mycompany,所以我的问题是,如何确定给定的电子邮件地址是本地可用的还是公共可用的 这是检查IP地址的代码,看起来很好,但是,我希望它也能与域名一起工作。你知道我该怎么做吗 public static bool IsLocal(string host) { tr

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

该应用程序还应与本地电子邮件服务器配合使用

因为有些公司使用像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;
        }

也许看看你能不能在那个域名上查询?@timur我听说你需要一个DNS服务器,对吗?不,我在想一个DNS服务器client@timur好的,但是在.Net中有什么简单的解决方案吗?或者我必须使用第三方库吗?我只是很快发现-不确定它是否符合您的“无第三方库”标准