c# - 如何检查以 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;
}
解决方案
推荐阅读
- python - 从 Flask 中的 render_template 提供 html 时提供 css 文件
- android - 带有自定义布局的 PreferenceFragmentCompat 在 API 28+ 上找不到工具栏
- javascript - 如果访问状态,React TypeScript 对象将变为未定义
- python - 暂停循环并等待用户按键每'n'次迭代。- Python
- javascript - 我怎样才能循环这个数组?
- typescript - 函数返回未定义的期望 Promise 或使用 async 和 await 的值
- babeljs - 有没有办法设置 Babel 以不断地将 src 文件夹转换和/或缩小到已编译的文件夹?
- sql - 从 2 个表中提取数据的 SQL 查询
- node.js - 循环合并 PDF 文件 ( Hummus-Recipe )
- java - docker compose 无法连接到 postgresql