LWIP实现DNS功能
本例已lwip1.40为例,有os。
1. 先把宏LWIP_DNS开启
#ifndef LWIP_DNS
#define LWIP_DNS 1
#endif
2. 在系统初始化调用 void sys_timeouts_init(void);初始化dns定时器dns_tmr(),dns定时器定时更新dns_table[DNS_TABLE_SIZE]的状态
static struct dns_table_entry dns_table[DNS_TABLE_SIZE];
3、编写程序
void test_lwip_dns(void )
{ip_addr_t host_ip;err_t ret;ret = dns_gethostbyname("www.baidu.com", &host_ip, dns_found, "hello");if (ret == ERR_INPROGRESS){//需要通过向dns服务器发送dns请求数据来获取hostname对应的IP地址printf("等待\r\n");}else{//从dns缓存表去除hostname对应的IP地址printf(" %s\r\n", ipaddr_ntoa(&host_ip));}
}
//
void dns_found(const char *name, ip_addr_t *host_ip, void *callback_arg)
{printf("%s,%s, %s\r\n", name, callback_arg, ipaddr_ntoa(host_ip));
}当从dns服务器找到hostname对应的IP地址后,static void dns_check_entry(u8_t i)函数中执行dns_found回调函数。
4、实验结果
第一次执行查询,需请求互联网
第二次查询,直接从缓存表查找
LWIP实现DNS功能相关推荐
- 配置 HTTP 与 DNS 功能
实验名称:配置 HTTP 与 DNS 功能 实验拓扑: 实验需求: 1.按图中所示配置网络设备IP地址: 2.通过客户端访问 web 服务器,看到相关内容 实验步骤: 1.配置网络设备 Gateway ...
- DNS云学堂 | 替代传统Windows DNS功能,不得不说的动态域名更新
为满足应用的双活改造和灵活切换的场景,很多企业依靠DNS系统实现应用与IP的解耦.搭建专业的DNS系统,替代传统Windows的DNS功能,成为了企业信息化发展健全的一个必要过程. 与域控结合,组建更 ...
- W5500以太网控制器芯片(四):实现DNS功能
#W5500以太网控制芯片相关文章链接# 上一篇: W5500以太网控制器芯片(三):实现DHCP服务 使用W5500时,如果要连接的是域名,则连接TCP服务器前将要域名转成IP再进行连接,这时候就要 ...
- 防火墙DNS功能在配置防火墙策略中的应用
随着云计算.大数据.AI等新兴技术的兴起,多活数据中心之间互相切换,保证业务100%稳定.许多数据中心都做到了多活,多活之间就导致业务地址可以在多个数据中心之间切换,今天是A地址,明天就是B地址,所以 ...
- LWIP之DNS域名解析(二)
(一)交代了下DNS.C文件的代码,那么在(二)中我再补充下 DNS.h的代码,并做简要说明. 之后是netdb.h的代码和netdb.c的代码! 代码已经注释完. 代码中可能加了注释后,可能会出现一 ...
- lwip中dns相关函数gethostbyname()的原理
- STM32 基础系列教程 36 - Lwip_dns
前言 域名系统(英文:DomainNameSystem,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53 ...
- 通过DNS实现DVR的网络访问功能
通过DNS实现DVR的网络访问功能 Date: September 30,2012 Keyword:DNS DVR 内网 外网 网络代理 公司内有数台模拟信号的监控摄像头,通过Cable集中被一台 ...
- 思科路由器的DNS及DHCP功能
我们知道,思科路由器以功能强大.负载能力强而著称,能更好地服务于网络.今天,我们在这里为大家介绍其两个特殊的应用,一起来看看吧. 一.DNS功能 在大型网络中一般都是需要部署DNS服务器的,而DNS是 ...
最新文章
- PHP solr服务器搭建,搜索方案 solr+php如何安装配置?
- python入门实践1-11课视频分享
- Tinyshop前后台操作基础教程讲解
- 【知识星球】剪枝量化初完结,蒸馏学习又上线
- windows下安装Oracle10G
- 贝叶斯规则(Bayes’ rule)
- UTF-8, Unicode, GB2312格式串转换之C语言版
- TypeScript Type Assertions - 类型断言
- php 正则表达式验证金额,php 正则表达式验证数字
- Sentinel(十五)之在生产环境中使用 Sentinel
- C语言求超级素数的个数,求一个输出a-b的超级素数程序(c)
- Android Studio 下载教程
- 笔记本拆c面_给老笔记本更换高清屏的经验与总结(翻车记录)
- [Android/Icon] 分享一个图标/Icon制作网站
- 毕业设计,微信小程序-购物小程序
- ES6重要知识点总结
- 四十一、Fluent初学者学习流程
- css中relative、absolute和float
- python plot画柱状图_Python绘制柱状图
- Webpack4 配置TS Loader
热门文章
- 洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery dijkstra 最短路
- 【数学】从零开始学统计
- 想出名裸奔可以,但是请自己去,Leo谈“鹰爸训练4岁儿子雪中裸跑”
- 大江狗的新博客长啥样?
- strongly-typed language(强类型语言)
- ofstream和ifstream详细用法
- iOS 获取字符串数学公式、字符串条件运算和逻辑运算的计算结果
- mac 建立软链接_Mac中创建URL链接文件 | 玩转苹果
- uniapp 微信公众号网页获取微信头像昵称
- 玩转百度AI Studio 之 用“四十路泰坦”跑线性回