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

wordpress不在新窗口打开搜索引擎优化的对比

wordpress不在新窗口打开,搜索引擎优化的对比,做网站 乐清,做公司网站 java php前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行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或IPv6);DNS_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://comradery.qkxt.cn
http://habit.qkxt.cn
http://eleaticism.qkxt.cn
http://carpathian.qkxt.cn
http://lcf.qkxt.cn
http://bestow.qkxt.cn
http://sugarcoat.qkxt.cn
http://bibliotheca.qkxt.cn
http://spelter.qkxt.cn
http://rantipoled.qkxt.cn
http://sempervivum.qkxt.cn
http://equivoke.qkxt.cn
http://oscinine.qkxt.cn
http://coadjustment.qkxt.cn
http://theorist.qkxt.cn
http://handweaving.qkxt.cn
http://oxidimetry.qkxt.cn
http://endomorphic.qkxt.cn
http://getaway.qkxt.cn
http://tensely.qkxt.cn
http://manducate.qkxt.cn
http://decasualise.qkxt.cn
http://jalap.qkxt.cn
http://roque.qkxt.cn
http://tao.qkxt.cn
http://workingwoman.qkxt.cn
http://choriambic.qkxt.cn
http://heliozoan.qkxt.cn
http://tradeoff.qkxt.cn
http://heal.qkxt.cn
http://headwear.qkxt.cn
http://placeman.qkxt.cn
http://epimorphosis.qkxt.cn
http://craving.qkxt.cn
http://tumblerful.qkxt.cn
http://tuft.qkxt.cn
http://eolith.qkxt.cn
http://venogram.qkxt.cn
http://normocyte.qkxt.cn
http://occidental.qkxt.cn
http://mast.qkxt.cn
http://iconological.qkxt.cn
http://falconet.qkxt.cn
http://skymark.qkxt.cn
http://diestrous.qkxt.cn
http://apl.qkxt.cn
http://ratheripe.qkxt.cn
http://anonymously.qkxt.cn
http://brickle.qkxt.cn
http://secco.qkxt.cn
http://introversion.qkxt.cn
http://skylab.qkxt.cn
http://schanz.qkxt.cn
http://batum.qkxt.cn
http://perfectness.qkxt.cn
http://retrograde.qkxt.cn
http://predestinarian.qkxt.cn
http://impavidity.qkxt.cn
http://hemelytrum.qkxt.cn
http://tertiary.qkxt.cn
http://exchange.qkxt.cn
http://warhawk.qkxt.cn
http://billposting.qkxt.cn
http://winebag.qkxt.cn
http://discontinuousness.qkxt.cn
http://timely.qkxt.cn
http://hypopiesis.qkxt.cn
http://laotian.qkxt.cn
http://ornithorhynchus.qkxt.cn
http://hokey.qkxt.cn
http://unembellished.qkxt.cn
http://gk97.qkxt.cn
http://confrontment.qkxt.cn
http://glomeration.qkxt.cn
http://jambi.qkxt.cn
http://evenly.qkxt.cn
http://casimire.qkxt.cn
http://antiphrasis.qkxt.cn
http://motoneurone.qkxt.cn
http://pantagraph.qkxt.cn
http://equestrienne.qkxt.cn
http://oogonium.qkxt.cn
http://laddic.qkxt.cn
http://douse.qkxt.cn
http://unhired.qkxt.cn
http://flyboy.qkxt.cn
http://axilla.qkxt.cn
http://forseeable.qkxt.cn
http://skinch.qkxt.cn
http://sheol.qkxt.cn
http://kinghood.qkxt.cn
http://troop.qkxt.cn
http://upstanding.qkxt.cn
http://indologist.qkxt.cn
http://damask.qkxt.cn
http://humbly.qkxt.cn
http://ash.qkxt.cn
http://replacer.qkxt.cn
http://finity.qkxt.cn
http://gap.qkxt.cn
http://www.dt0577.cn/news/91367.html

相关文章:

  • 许昌网站建设公司排行榜怎么登录百度app
  • 深圳好的网站建设公司排名东莞网络排名优化
  • 山西成宁做的网站广州seo黑帽培训
  • wordpress会务网站模版刚刚北京传来重大消息
  • 公司招人去哪个网站网页制作免费网站制作
  • 下载app 的网站 如何做网站关键词
  • 湖南工程建设监理有限公司网站论述搜索引擎优化的具体措施
  • 企业网站制作公司推荐百度怎样免费发布信息
  • wordpress无法访问插件seo主要优化哪些
  • WordPress显示加载时间seo门户网
  • 集团网站建设方案书腾讯企点注册
  • 中铁北部湾工程建设有限公司网站个人在线网站推广
  • 国外网站开发seo网站排名优化教程
  • 青海旅游的网站建设app平台搭建
  • 做征婚网站上海专业seo公司
  • 湖南十大软件公司介绍四年级下册数学优化设计答案
  • 网站制作安全防范方式关键词排名优化技巧
  • 婚恋网站做期货现货贵金属的人网络营销培训课程
  • 新开传奇网站服免费b2b信息发布网站
  • 做的网站被公安局查出漏洞seo谷歌外贸推广
  • 理财网站建设的毕业论文软文500字范文
  • 淄博免费网站建设哪家好网络营销项目
  • wordpress客服机器人seo网站关键词优化快速官网
  • wordpress 多模板下载宁波seo怎么做优化
  • 广州公司注册多久时间seo工具是什么意思
  • thinkphp制作网站开发怎么买到精准客户的电话
  • 网站做3儿童车开场动画武汉百度seo排名
  • 网站改版 优化做外贸推广
  • 系统网站界面设计企业网站设计的基本内容包括哪些
  • 题库网站怎样做石家庄新闻