Below you will find pages that utilize the taxonomy term “DNS”
Mac OS X 突然无法解析个别域名的处理
参考这里
有些时候, Mac OS X 会突然无法解析一些内网域名。一分钟前还好好的,一分钟后就始终报无法解析。然而其它的内网域名都正常,只有个别一个无法解析。同时,dig之类直接访问 /etc/resolv.conf 的工具却可以正常解析,但 ping 和浏览器访问都会报解析错误。
问题在于, mDNSResponder 偶尔地会自动更换查询的DNS服务器,它不会一直遵照设定的DNS顺序进行查询。我在 Mac OS X 配置了多个 DNS 服务器,内网 DNS 是主要DNS,公共DNS,如8.8.8.8 是备用DNS。
解决方法最简单的就是只配置内网DNS服务器,取消掉其它的DNS配置。或者,参照上面的帖子,重启mDNSResponder(我在重启后依然无法解析)。
DNS客户端改进版
对[link2post id=”797″]上一个DNS客户端[/link2post]的简单改进。稍微封装了一下,同时修改了接收返回部分的代码,可以读到被GFW劫持域名的正确记录。
<br></br>#include <stdio.h><br></br>#include <stdlib.h><br></br>#include <string.h><br></br>#include <strings.h></strings.h></string.h></stdlib.h></stdio.h>
#include
#include
#include
#include <netdb.h>
#include <unistd.h></unistd.h></netdb.h>
#define DNSSERVER (“8.8.8.8”)
extern int errno;
struct DNSHeader{
short TranscationID;
short Flags;
short Questions;
short AnswerRRs;
short AuthorityRRs;
short AdditionalRRs;
}__attribute__((packed));
struct DNSQuery{
short Type;
short Class;
}__attribute__((packed));
struct DNSQueryFull{
char* domain;
short Type;
short Class;
}__attribute__((packed));
简单的C语言DNS客户端实现
写着玩儿的……
只能查询并解析A记录。
<br></br>#include <stdio.h><br></br>#include <stdlib.h><br></br>#include <string.h><br></br>#include <strings.h></strings.h></string.h></stdlib.h></stdio.h>
#include
#include
#include <netdb.h></netdb.h>
#define DNSSERVER (“8.8.8.8”)
extern int errno;
struct DNSHeader{
short TranscationID;
short Flags;
short Questions;
short AnswerRRs;
short AuthorityRRs;
short AdditionalRRs;
}__attribute__((packed));
struct DNSQuery{
short Type;
short Class;
}__attribute__((packed));
struct DNSAnswerRR{
short Name;
short Type;
short Class;
int TTL;
short Length;
int Address;
}__attribute__((packed));