w5100實(shí)現(xiàn)dns解析功能
環(huán)境:
主機(jī):WIN7
開(kāi)發(fā)環(huán)境:MDK4.72
MCU:STM32F103ZE
說(shuō)明:
在項(xiàng)目中我要搭建一個(gè)服務(wù)器,服務(wù)器域名固定,但ip是動(dòng)態(tài)的.每一個(gè)帶w5100的板子需要解析dns,獲得服務(wù)器ip.
dns協(xié)議格式:
參考鏈接:http://blog.csdn.net/wangyifei0822/article/details/2316857
源代碼:
dns請(qǐng)求:
mily:SimHei;">/*********************************************************************
*dns請(qǐng)求
*參數(shù):socket:端口
*url:目標(biāo)url
*dns_ip:dns服務(wù)器ip
**********************************************************************/
voidinf_w5100_dns_query(uint8_tsocket,char*url,uint8_t*dns_ip)
{
uint8_tdata[100]={0};
uint8_ti=0;
uint8_tj=0;
uint8_tstr_len=0;
uint8_tindex_num=0;
//dns標(biāo)識(shí)字段
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]=='