• lwip 2.0.3 DNS 域名解析 使用


    1、  在  lwipopts.h 中  

      #define LWIP_DNS 1             /* 使能 DNS 服务器的功能 ,2018年1月8日21:16:20,suozhang */
      #define LWIP_RAND() ((u32_t)rand())     /* 使用 DNS 服务器的功能,需要添加随机数函数 ,2018年1月8日21:16:20,suozhang */

    2、在 初始化  服务中 ,进行初始化  DNS 的 服务器 IP 以及 初始化 DNS 服务

      

    ip_addr_t dnsserver;
    
    /* Create tcp_ip stack thread */
    
    tcpip_init( NULL, NULL );    /* 创建,运行 LWIP 协议栈,2018年1月9日10:56:34 */
    
    IP4_ADDR(&dnsserver,114,114,114,114);/* suozhang,add,2018年1月11日18:03:10 */
    dns_setserver(0, &dnsserver);
    
    IP4_ADDR(&dnsserver,223,5,5,5);    /* suozhang,add,2018年1月11日18:03:10 */
    dns_setserver(1, &dnsserver);
    
    dns_init(); /* 初始化 DNS 服务,2018年1月9日10:56:34 */

    3、 在保证 能正常 联网的情况 下, 使用 下面的方式进行 域名解析服务

    void my_found(const char *name, const ip_addr_t *ipaddr, void *arg)
    {
        uint8_t ip[4];
    
        ip[0] = (ipaddr->addr)>>24; 
        ip[1] = (ipaddr->addr)>>16;
        ip[2] = (ipaddr->addr)>>8; 
        ip[3] = (ipaddr->addr); 
    
        printf("%s ip is :%d.%d.%d.%d.
    ",name,ip[3], ip[2], ip[1], ip[0]); 
    }
    
    void test()
    {
        
    
        
        char hostname[]="www.baidu.com";
        
        err_t err;
        
        err  = dns_gethostbyname((char*)(hostname), &(serverIp),my_found,NULL);
    
        if( err == ERR_OK)
            {
                printf("netconn_gethostbyname ERR_OK.
    ");
            }
            else
            {
                printf("netconn_gethostbyname err:%d.
    ",err);
            }
    
    }

    5、  解析 结果 

      netconn_gethostbyname err:-5.

      www.baidu.com ip is :111.13.100.91.

     

    6、-5 意思 是正在解析中…………

  • 相关阅读:
    Java package和import
    2文本
    dotnet学习制表技巧
    视频教程:小型登陆系统(五)
    读书札记:ASP.NET网站管理工具遇到错误。请返回上一页并重试
    视频教程:小型登陆系统(三)
    视频教程:小型登陆系统(四)
    视频教程:小型登陆系统(二)
    视频教程:小型登陆系统(一)
    视频教程:小型登陆系统(完)
  • 原文地址:https://www.cnblogs.com/suozhang/p/8270256.html
Copyright © 2020-2023  润新知