#include "System_Init.h"
#include "Delay.h"
#include "DNS_Parsing.h"
#include "CPU_Driver_Init.h"
#include "W5100_Driver.h"
#include "stdio.h"
#include <stdbool.h>
#include "Jason_SmartFurniture.h"
//===DNS域名缓冲区
char Domain_Name_DNS[]="hengjing.JasonServer.com\0";//修改时头文件里面也要修改
/**************************************************************
函数名称:DNS请求
函数说明:发送请求给DNS解析服务器
函出入口参数:
更改备注:
**************************************************************/
void Inf_w5100_dns_query(const char *url)
{
uint8_t data[100] = {0};
uint8_t i = 0;
uint8_t j = 0;
uint8_t f = 0;
uint8_t str_len = 0;
uint8_t index_num = 0;
u16 DNS_ID=0x0000;
//====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] == '\0')
{
data[index_num] = str_len;
data[i++] = 0x00;
break;
}
if (url[j] != '.')
{
data[i++] = url[j];
str_len++;
}
else
{
//====字符长度
data[index_num] = str_len;
str_len = 0;
index_num = i++;
}
j++;
}
//====dns结尾
data[i++] = 0x00;
data[i++] = 0x01;
data[i++] = 0x00;
data[i++] = 0x01;
//====发送
for(f=0;f<i;f++)
{
Tx_Buffer[f]=data[f];
}
S_tx_process(1,i);
}
/**************************************************************
函数名称:DNS服务器返回数据
函数说明:解析协议包 提取IP地址
函出入口参数:
更改备注:
**************************************************************/
void Inf_w5100_dns_response(u8 *IP_Data_OUT,char *IP_Data_Read,uint16_t size)
{
// printf("return%s\n",IP_Data_Read);
printf("IP-Adrr:%d.%d.%d.%d\n",IP_Data_Read[size - 4 + 0],IP_Data_Read[size - 4 + 1],IP_Data_Read[size - 4 + 2],IP_Data_Read[size - 4 + 3]);
IP_Data_OUT[0]=IP_Data_Read[size - 4 + 0];
IP_Data_OUT[1]=IP_Data_Read[size - 4 + 1];
IP_Data_OUT[2]=IP_Data_Read[size - 4 + 2];
IP_Data_OUT[3]=IP_Data_Read[size - 4 + 3];
/* IP_Data_OUT[0]=S0_DIP[0];
IP_Data_OUT[1]=S0_DIP[1];
IP_Data_OUT[2]=S0_DIP[2];
IP_Data_OUT[3]=S0_DIP[3];*/
}
没有合适的资源?快使用搜索试试~ 我知道了~
W5100 W5500 DNS的程序 51 STM32平台
共2个文件
h:1个
c:1个
4星 · 超过85%的资源 需积分: 11 66 下载量 4 浏览量
2014-11-25
09:28:12
上传
评论
收藏 2KB ZIP 举报
温馨提示
对于大家 在W5100 W5500 W5200 网络部分的实现DNS部分 本代码简单移植 稳定性很好,在“蓝云智能家居”网关得到大面积的验证 可移植大多数C语言平台 AVR 51 STM32 STM8等 平台
资源推荐
资源详情
资源评论
收起资源包目录
DNS_Parsing.zip (2个子文件)
DNS_Parsing
DNS_Parsing.h 270B
DNS_Parsing.c 3KB
共 2 条
- 1
d350998385
- 粉丝: 0
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页