当前位置: 首页 > news >正文

南方科技大学网站建设番禺网站建设系统

南方科技大学网站建设,番禺网站建设系统,网页设计代码爱心,找人做销售网站前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址#xff08;网关#xff0c;子网掩码#xff0c;dns服务器#xff09;等信息#xff0c;给我们的开发板配置网络信息#xff0c;成功的接入网络中#xff0c;那么本章将教大家如何让我们的开发板进行DNS域名解…前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址网关子网掩码dns服务器等信息给我们的开发板配置网络信息成功的接入网络中那么本章将教大家如何让我们的开发板进行DNS域名解析通过请求DNS服务器可以对一网络域名进行解析后获得其ip地址。 什么是DNS有何用途 DNS即域名系统Domain Name System,我们知道设备想要接入互联网上进行通信的都需要一个ip地址我们访问一个服务器也需要知道它的ip地址但是如果通过输入ip进行访问那么IPv4地址是32位二进制数纵使每8位用 “.” 划分并转换为十进制记起来也很是麻烦更别说IPv6了况且并不是所有的网站的ip都是独立ip很多是共享ip即一个ip绑定多个网站直接输入ip访问的话服务器不知道客户端要访问该ip绑定下的具体哪个网站。通过dns很好的解决了这些问题我们可以通过直接输入域名然后通过dns解析获得ip服务器根据域名映射识别后即可访问该域名对应的网站通俗说就是域名是相当于网站的比较好记一点的名字况且解析方式不仅可以正向解析域名解析出ip还可以反向解析ip解析出域名。 通过dns解析我们的开发板可直接通过其域名对其进行访问。 软硬件准备 软件VS code须具有相应开发环境具体参考第一章 硬件W6100-EVB-PICO开发板网线micro USB 数据线路由器可上网 通过使用DNS协议解析百度域名 1.相关代码 我们先找到dns.h头文件下面看下可以看到几个函数声明我们需要用到如下所示几个函数 DNS_init要我们传入dns信息的接收缓存buff地址DNS_run根据这个函数描述需要我们传入一个socket端口号dns服务器ip请求解析的域名解析后ip存放的地址以及模式IPv4或IPv6DNS_time_handler是1s定时器的处理程序我们要把它放在一个定时器里每到1秒调用1次做dns解析时的计时操作以判断是否超时并做相应处理。 /** brief DNS process initialize* param s : Socket number for DNS* param buf : Buffer for DNS message*/ void DNS_init(uint8_t * buf);/** brief DNS process* details Send DNS query and receive DNS response* param dns_ip : DNS server ip* param name : Domain name to be queryed* param ip_from_dns : IP address from DNS server* return -1 : failed. ref MAX_DOMIN_NAME is too small \n* 0 : failed (Timeout or Parse error)\n* 1 : success* note This funtion blocks until success or fail. max time ref MAX_DNS_RETRY * ref DNS_WAIT_TIME*/ int8_t DNS_run(uint8_t s,uint8_t * dns_ip, uint8_t * name, uint8_t * ip_from_dns,uint8_t mode);/** brief DNS 1s Tick Timer handler* note SHOULD BE register to your system 1s Tick timer handler*/ void DNS_time_handler(void); 然后我们打开dns_client.c可以看到先初始化网络信息和所需要的解析域名这里以百度www.baidu.com为例然后与上一章的dhcp类似都是将函数封装好然后声明后直接在主程序里调用。如下所示。 #define ETHERNET_BUF_MAX_SIZE (1024 * 2)void network_init(void); int dns_test(void); bool repeating_timer_callback(struct repeating_timer *t);wiz_NetInfo net_info {.mac {0x00, 0x08, 0xdc, 0x16, 0xed, 0x2e},.ip {192, 168, 1, 10},.sn {255, 255, 255, 0},.gw {192, 168, 1, 1},.dns {8, 8, 8, 8},.dhcp NETINFO_STATIC}; wiz_NetInfo get_info; static uint8_t ethernet_buf[ETHERNET_BUF_MAX_SIZE] {0,}; uint8_t DNS_2nd[4] {114,114,114,114}; uint8_t Domain_name[] www.baidu.com; uint8_t Domain_IP[4] {0,}; uint8_t g_msec_cnt 0; 我们简单看下声明的这三个函数的具体实现如下所示network_init是配置网络信息并用串口打印回显方便观察dns_test通过调用DNS_run根据其返回的状态做出相应处理如果dns服务器解析超时或失败就用备用的如果解析成功就打印出域名解析后的对应ip然后把定时器处理程序放在定时器回调里定时1秒每秒调用一次。 void network_init(void) {uint8_t temp;wizchip_initialize();printf(W6100 dns test example.\r\n);sleep_ms(2000);/* Determine the network lock register status */if(!ctlwizchip(SYS_NET_LOCK, temp)){ printf(unlock.\n);NETUNLOCK();}wizchip_setnetinfo(static_info);print_net_info(net_info);sleep_ms(2000); }int dns_test(void) {int ret;printf(\r\n DNS Client Example \r\n);printf( DNS 1st: %d.%d.%d.%d\r\n,net_info.dns[0],net_info.dns[1],net_info.dns[2],net_info.dns[3]);printf( DNS 2nd: %d.%d.%d.%d\r\n,DNS_2nd[0],DNS_2nd[1],DNS_2nd[2],DNS_2nd[3]);printf(\r\n);printf( Example Domain Name : %s\r\n,Domain_name);if((ret DNS_run(SOCKET_ID, net_info.dns, Domain_name, Domain_IP, AS_IPV4)) 0){printf( 1st DNS Reponsed\r\n);}else if((ret ! -1) ((ret DNS_run(SOCKET_ID, DNS_2nd, Domain_name, Domain_IP, AS_IPV4)) 0)){printf( 2nd DNS Responsed\r\n);}else if(ret -1){printf( MAX_DOMAIN_NAME is too small. Should be redefined it. \r\n);}else{printf( DNS Failed\r\n);}if(ret 0){printf( Translated %s to %d.%d.%d.%d\r\n,Domain_name,Domain_IP[0],Domain_IP[1],Domain_IP[2],Domain_IP[3]);return 1;}return 0; }/* Timer */ bool repeating_timer_callback(struct repeating_timer *t) {DNS_time_handler();return true; } 主程序就是先初始化所有配置启动定时器然后运行dns即可成功就停止进入while死循环不成功就继续执行。 2.编译烧录 编译后打开build下对应的文件夹里找到uf2文件然后开发板按下BOOTSEL键复位上电进入程序下载模式此时我们的电脑会检测到一个名为RPI-RP2的u盘把uf2文件拖入即可完成烧录如下所示 3.测试现象 程序下载到我们的开发板后打开串口监视器波特率默认为115200我们可以看到通过dns我们成功解析出了百度www.baidu.com的IP地址。如下图所示 相关代码链接  W6100-EVB-PICO相关例程https://gitee.com/wiznet-hk/example-of-w6100-evb-pico.git
http://www.hkea.cn/news/14387217/

相关文章:

  • 网站构建代码模板行业网站做不下去
  • 做兼职网站设计项目网格化管理方案
  • 封装系统如何做自己的网站五种商业模式
  • 怎么用自己的网站做邮箱盘锦市网站建设
  • 做网站公司三年财务预算表photoshop永久免费版
  • 网站开发中标签栏的图标一般都在那个文件中写代码怎么样做好网站运营
  • 烟台做网站排名深圳做网站哪家最好
  • 青岛优化网站诊断深圳手机网站开发
  • 长沙网络建设的网站东莞住房和城乡建设局
  • 小男孩做爰网站上海自适应网站开发
  • 做标书要不要做网站北京市政建设集团有限公司
  • wordpress网站页面打开很慢做一个手机app的步骤
  • 做企业网站用哪个cms南宁seo优化
  • 广东企业微信网站开发老域名全部失效请拿笔记好
  • 政务公开和网站建设情况总结建门户网站要多少钱
  • 做酒类网站中企动力潍坊分公司
  • 美团网站制作的特色中山企业网站制作
  • 网站发布到ftp订单网站怎么做
  • 医疗器械公司网站备案怎么做西安搬家公司电话大全
  • 做网站用那一种语言最好网络营销策划方案的设计
  • 了解网站建设规划流程类似稿定设计的软件有哪些
  • 建站哪家好论坛做网站协调
  • 深圳小程序开发官网唐山seo排名外包
  • 购物网站开发代码安阳建设网站
  • 建设网站的网站是什么wordpress网站设计
  • 建设网站域名是买吗荔枝视频在线观看高清完整版
  • wordpress小说网站主题做网站 挣广告联盟的佣金
  • 网站提示宏域名服务商有哪些
  • 网站数据库建设网站推广服务算中介吗
  • 封面制作网站网页qq空间登录界面