历史上的今天
今天是:2024年10月15日(星期二)
2020年10月15日 | w5100实现dns解析功能
2020-10-15 来源:eefocus
环境:
主机:WIN7
开发环境:MDK4.72
MCU:STM32F103ZE
说明:
在项目中我要搭建一个服务器,服务器域名固定,但ip是动态的.每一个带w5100的板子需要解析dns,获得服务器ip.
dns协议格式:
参考链接:http://blog.csdn.net/wangyifei0822/article/details/2316857
源代码:
dns请求:
/*********************************************************************
* dns请求
*参数:socket:端口
* url:目标url
* dns_ip:dns服务器ip
**********************************************************************/
void inf_w5100_dns_query(uint8_t socket,char *url,uint8_t *dns_ip)
{
uint8_t data[100] = {0};
uint8_t i = 0;
uint8_t j = 0;
uint8_t str_len = 0;
uint8_t index_num = 0;
//dns标识字段
data[i++] = (DNS_ID >> 8) & 0xff;
data[i++] = DNS_ID & 0xff;
//dns头
data[i++] = 0x01;
data[i++] = 0x00;
data[i++] = 0x00;
data[i++] = 0x01;
data[i++] = 0x00;
data[i++] = 0x00;
data[i++] = 0x00;
data[i++] = 0x00;
data[i++] = 0x00;
data[i++] = 0x00;
//正文
j = 0;
str_len = 0;
index_num = i++;
while (1)
{
//判断是否到字符末尾
if (url[j] == '




