C# 如何检查tld结尾的域是真实域还是本地域
我正在做一个程序,我必须处理用户提供的电子邮件地址 该应用程序还应与本地电子邮件服务器配合使用 因为有些公司使用像john这样的本地电子邮件地址。doe@deployment.mycompany,所以我的问题是,如何确定给定的电子邮件地址是本地可用的还是公共可用的 这是检查IP地址的代码,看起来很好,但是,我希望它也能与域名一起工作。你知道我该怎么做吗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
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中有什么简单的解决方案吗?或者我必须使用第三方库吗?我只是很快发现-不确定它是否符合您的“无第三方库”标准