• 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 意思 是正在解析中…………

  • 相关阅读:
    FMDB线程安全
    FMDB的使用
    iOS【手机验证码】判断手机号是否合法
    UIScrollView UIScrollViewDelegate
    iOS苹果开发者常用网站
    < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />
    CSS布局口诀
    css垂直居中
    在js中使用createElement创建HTML对象和元素
    jQuery-对Radio/CheckBox的操作集合
  • 原文地址:https://www.cnblogs.com/suozhang/p/8270256.html
Copyright © 2020-2023  润新知