Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C DNS over UDP示例查询_C_Dns_Udp - Fatal编程技术网

C DNS over UDP示例查询

C DNS over UDP示例查询,c,dns,udp,C,Dns,Udp,我经常发现自己需要测试互联网连接是否在线。特别是,有时(在非常非常特殊的连接上)UDP被禁用。现在,我发现测试我的连接是否可以使用UDP的最简单方法之一是通过DNS查询 现在,使用一些函数,如getaddrinfo将UDP从查询中抽象出来,这样(据我所知)如果UDP不可用,将使用TCP。现在,由于我需要测试UDP连接,我需要自己用查询伪造UDP数据包。此外,我希望查询公共DNS服务器(如8.8.8.8),以便确定UDP连接可用于与外部主机对话 所以我想知道:我可以通过UDP数据包发送的最简单的D

我经常发现自己需要测试互联网连接是否在线。特别是,有时(在非常非常特殊的连接上)UDP被禁用。现在,我发现测试我的连接是否可以使用UDP的最简单方法之一是通过DNS查询

现在,使用一些函数,如
getaddrinfo
将UDP从查询中抽象出来,这样(据我所知)如果UDP不可用,将使用TCP。现在,由于我需要测试UDP连接,我需要自己用查询伪造UDP数据包。此外,我希望查询公共DNS服务器(如8.8.8.8),以便确定UDP连接可用于与外部主机对话


所以我想知道:我可以通过UDP数据包发送的最简单的DNS查询是什么?你能给我举个例子,比如说,向DNS服务器请求google.com的ip吗?

我不确定我是否完全理解你的问题,但最简单的查询应该是
SOA
(即根区域的权限开始),如下所示:

$ dig SOA . @8.8.8.8

; <<>> DiG 9.8.3-P1 <<>> SOA . @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46366
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.              IN  SOA

;; ANSWER SECTION:
.           4350    IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2015102500 1800 900 604800 86400

;; Query time: 36 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Oct 25 21:07:19 2015
;; MSG SIZE  rcvd: 92
$dig SOA@8.8.8.8
;  挖掘9.8.3-P1 SOA@8.8.8.8
;; 全局选项:+cmd
;; 得到答案:
;; ->>标题