This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS:DNS 客户端示例

Guru**** 2461030 points
Other Parts Discussed in Thread: EK-TM4C129EXL

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/655289/rtos-dns-client-example

Thread 中讨论的其他器件:EK-TM4C129EXL

工具/软件:TI-RTOS

您好!

我想使用本地 DNS 服务器将主机名解析为 IP。 (有时会使用有效的 DNS 服务器,例如 dnsmasq,有时基本路由器会使用静态 DNS 条目执行该任务。) 我的问题是、我找不到任何开箱即用的示例。

我的起始应用是 tcpEcho 示例(EK-TM4C129EXL)、我只将 DNS 模块添加到配置中。 之后、我无法构建该示例。 您能告诉我如何继续吗?

请参阅随附的图片:

期待您的回复、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel:

    可以使用 DNSGetHostByName()(类似于 gethostbyname())。 您所做的是将 DNS 服务器添加到目标中。 我认为您不想这么做。 要访问本地 DNS 以解析名称。 注:DNS 服务器是 DHCP 设置的一部分,如果您有静态 IP 地址,则必须显式设置。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢你的答复。 我是否可以请求一些支持来查找正确的头文件以及使用 gethostbyname()的 include 示例?

    更新了:我使用以下代码执行此操作:

    struct addrinfo * server_data = NULL;
    INT RESULT = 0;
    
    
    
    System_printf ("!!!!!!!!!!! \n"、结果);System_flush ();
    
    结果= getaddrinfo (HOSTNAME、"0"、NULL、&server_data);
    
    system_printf ("getaddrinfo 结果:%d\n"、结果);
    
    if (结果=0 && server_data!= NULL)
    {
    struct sockaddr addr =*(server_data->ai_addr);
    iNet_ntop (AF_iNet、&(struct sockaddr_in *)&addr)->sin_addr、strip、iNet_ADDRSTRLEN);
    System_printf ("已解析的地址:%s\n"、条图);
    
    freedrinfo (server_data);
    SERVER_DATA =空;
    }
    
    
    system_flush(); 

    但是,我无法解析路由器处理的静态主机名。 我可以解析"www.google.com 等主机名

    有什么关于如何继续的想法吗?  

    我是否应该为此问题创建新主题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这个线程不是太长、所以让我们在这里处理它。

    Wireshark 显示的"www.google.com 和"myStaticName"(或静态主机名是什么)是什么? 是否确定 DNS 服务器知道静态主机名?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对 DHCP 客户端列表中列出的主机名和路由器设置中的域名有点困惑。 在我的 Win 计算机上、我可以 ping "主机名"、但是 NDK 无法解析主机名。 我必须将"主机名"添加到路由器域名列表中、所有内容都运行良好。

    感谢你的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很酷! 很高兴听到一切正常。