OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4469|回复: 2

stm32H7+lwip2.12 DNS域名连接

[复制链接]

21

主题

55

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-12-5
在线时间
45 小时
发表于 2022-4-18 13:47:40 | 显示全部楼层 |阅读模式
8金钱
为什么我用两种方式获取的IP都不对
        netconn_gethostbyname((char *)hostname,&ser_t);
       
        dns_gethostbyname((char *)(hostname),&ser_t,my_found,NULL);




但百度搜索一下别人的例程很简单
例如域名 www.baidu.com


  #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 */


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 */
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.\r\n",name,ip[3], ip[2], ip[1], ip[0]); }
err  = dns_gethostbyname((char*)(hostname), &(serverIp),my_found,NULL);

这样获取的IP就是:111.13.100.91

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2022-4-18 23:56:23 | 显示全部楼层
回复

使用道具 举报

14

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
591
金钱
591
注册时间
2013-3-1
在线时间
153 小时
发表于 2022-4-19 20:13:54 | 显示全部楼层
使用访问某个网址时,往往我们只知道他的网址,不知道他对应的服务器地址,此时,需要通过DNS服务器把你的网址解析出来一个服务器IP地址,然后才能在访问这个IP地址,使用LWIP解析域名时,就需要打开宏定义LWIP_DNS,然后设置DNS服务器地址,你这个引用中,它实际上就是设定了2个DNS服务器地址(114,114,114,114)和(223,5,5,5)当你调用netconn_gethostbyname时,他就会通过设定的2个DNS服务器来解析出你想访问的网址的IP地址,你如果不设置DNS服务器地址,肯定就解析不处理需要访问的网址的IP地址,自然就无法连接请求服务器信息了,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 21:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表