从 DNS 服务器提取 MX 记录

2023-11-21

我正在编写一个应用程序,要求我对 MX 记录进行 DNS 查找。我不确定是否有人有从事此类工作的经验,但如果您有的话,我们将不胜感激。

编辑: 我想要的是一个可以发送电子邮件警报的应用程序。问题是我需要让应用程序能够查找域的 MX 记录。


最简单的方法是简单地使用常用的工具。

基本的“dig”命令将通过以下查询将记录返回给您:

dig mx example.com

如果您只想要包含 mx 记录的行...

dig mx example.com | grep -v '^;' | grep example.com

dig 可在大多数 linux / unix 机器上使用。

如果您使用的是 Windows,则可以使用 nslookup

nslookup -type=mx example.com

然后只需解析这些常用工具的输出即可。

编辑:来自网络的套接字的简单 C 示例

由于您将“C”作为标签,我猜您正在寻找使用原始套接字进行 MX 查找的源代码。我复制了这个http://www.developerweb.net/forum/showthread.php?t=3550。这可能是您正在寻找的更多内容?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <resolv.h>

int main (int argc, char *argv[])
{
    u_char nsbuf[4096];
    char dispbuf[4096];
    ns_msg msg;
    ns_rr rr;
    int i, j, l;

    if (argc < 2) {
        printf ("Usage: %s <domain>[...]\n", argv[0]);
        exit (1);
    }

    for (i = 1; i < argc; i++) {
        l = res_query (argv[i], ns_c_any, ns_t_mx, nsbuf, sizeof (nsbuf));
        if (l < 0) {
            perror (argv[i]);
        } else {
#ifdef USE_PQUERY
/* this will give lots of detailed info on the request and reply */
            res_pquery (&_res, nsbuf, l, stdout);
#else
/* just grab the MX answer info */
            ns_initparse (nsbuf, l, &msg);
            printf ("%s :\n", argv[i]);
            l = ns_msg_count (msg, ns_s_an);
            for (j = 0; j < l; j++) {
                ns_parserr (&msg, ns_s_an, j, &rr);
                ns_sprintrr (&msg, &rr, NULL, NULL, dispbuf, sizeof (dispbuf));
                printf ("%s\n", dispbuf);
            }
#endif
        }
    }

    exit (0);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 DNS 服务器提取 MX 记录 的相关文章

  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • tar.gz 和 tgz 是同一个东西吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我创建了 tgz 文件tar czvf filecommand then 我最终得到了一个 tgz 文件 我想知道它和tar gz 之间的
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • 如何查看WTForms验证错误?

    我正在编写一些基本测试 但测试失败了 def test new user registration self self client get user register form RegistrationForm email u email
  • fopen:无法打开流:Mac 上的 PHP 中的权限被拒绝 [重复]

    这个问题在这里已经有答案了 我写了这段代码 if file exists testfile rtf echo file exists else echo file doesn t exist fh fopen testfile rtf w
  • 如何在 Swift 中写入 Google Sheets

    我正在尝试通过以下方式写入 Google Sheets 文档这个谷歌API 但我没有取得太大成功 我什至不确定我是否遵循了正确的 api 因为它显示 Appscript 并且看起来像 Swift 我已经能够使用以下方法从工作表中读取数据 p
  • 当工作线程工作时,UI 变得不稳定

    我有一个手写识别应用程序 用户用手指绘画 该应用程序识别字符 识别引擎在具有尽可能低优先级的工作线程中运行 Thread MIN PRIORITY 它是纯粹的CPU 内存算法 没有任何I O 不过 当线程正在积极工作时 用户界面会变得相当不
  • 人类可读的 type_info.name() [重复]

    这个问题在这里已经有答案了 我编译了以下代码g 并得到输出 该输出写在注释中 template
  • Laravel 4 - 没有可用的猜测者问题

    我收到此错误 LogicException 无法猜测 mime 类型 因为没有可用的猜测器 您启用了 php fileinfo 扩展吗 我已经启用了 php fileinfo 扩展并重新启动了 Wamp Web 服务器 但我仍然无法解决这个
  • AsyncTask Android 示例

    我正在读关于AsyncTask 我尝试了下面的简单程序 但这似乎不起作用 我怎样才能让它发挥作用 public class AsyncTaskActivity extends Activity Button btn Called when
  • Firebase Listener 在空闲时间后无法识别或恢复连接

    我的项目是识别客户端是在线还是离线 我使用 Android Firebase 文档中提供的代码 该代码使用 info connected 中的 EventListener since I can connect from multiple
  • 从字符串源列表动态生成最短的正则表达式

    我有一堆 SKU 库存单位 它们代表一系列字符串 我想创建一个正则表达式来匹配它们 举例来说 如果我有 SKU var skus new BATPAG003 BATTWLP03 BATTWLP04 BATTWSP04 SPIFATB01 我
  • 在 Swift 3 中访问代码错误

    Xcode 8 beta 4 中的新功能 NSError桥接到 SwiftError协议类型 这会在处理失败时影响 StoreKitSKPaymentTransactions 您应该检查以确保没有因为事务被取消而发生错误 以了解是否向用户显
  • Spring REST - 将 GET 参数绑定到嵌套对象

    我知道你可以将 get 请求参数绑定到 pojo 例如 RequestMapping value reservation method RequestMethod GET produces MediaType APPLICATION JSO
  • 在字符串列表中的特定元素之前和之后插入元素

    当出现特定字符串时是否可以插入到列表中 例子 List north south east west south united 因此 每次出现字符串 south 时 列表都会插入一个项目 canada 在列表中元素 south 之前 Resu
  • [NodeJs][Sequelize] ReferenceError:初始化前无法访问“ModelName”

    目前我使用一个API实现节点 Js 13和 ORM续集 v5而这一切都在ES6 通过 package json 中的 type module 在这个项目中 当我尝试使用关联时出现问题 我有三个关联的模型 author js authorbo
  • 我如何推迟 jQuery Each 循环

    我在 jQuery 每个循环中执行 繁重 画布操作 导致较慢的设备 IE 和 iPad 有时变得完全无响应 所以我想我可以使用下划线 defer 将每个循环中的函数排队 例如 function handleAsset defer funct
  • Spark 可扩展性:我做错了什么?

    我正在使用 Spark 处理数据 它可以处理一天的数据 40G 但失败了OOM一周的数据 import pyspark import datetime import operator sc pyspark SparkContext sqc
  • 如何在 Android 版 Realm 中实现以下功能

    在我的应用程序中 我通常有一个加载器 它从 sqlite 加载数据 然后将其传递到它所附加的活动或片段 从那里将其设置在 absListView 的适配器中 然后将其呈现给用户 由于领域声明其对象不应该跨线程共享 如何在不从 UI 线程进行
  • Jackson JsonMappingException:无法反序列化实例

    我正在尝试使用 Jackson 将 json 数据转换为 POJO 对象 这是 MainActivity 和我的 POJO 类代码 我基本上收到了 JsonMappingException 错误 我还附上了整个日志 MainActivity
  • 为什么SignHash需要知道使用了什么哈希算法?

    这可能是一个问题http crypto stackexchange com 但我想我应该先在这里尝试一下 因为答案可能与 NET 有关 而不是与加密算法本身有关 In the RSACryptoServiceProvider 类 有一个方法
  • Python - 作为文字的二进制转义序列字符串

    我需要打印出一串二进制转义序列 例如 x05 x03 x87 正如它们所出现的那样 当我尝试打印它们时 Python 返回一串奇怪的非 ASCII 字符 如何将它们打印为字符串文字 repr gt gt gt a x05 x03 x87 g
  • 从 DNS 服务器提取 MX 记录

    我正在编写一个应用程序 要求我对 MX 记录进行 DNS 查找 我不确定是否有人有从事此类工作的经验 但如果您有的话 我们将不胜感激 编辑 我想要的是一个可以发送电子邮件警报的应用程序 问题是我需要让应用程序能够查找域的 MX 记录 最简单