首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关键词在resolv.conf大小写敏感吗?

问关键词在resolv.conf大小写敏感吗?
EN

Unix & Linux用户
提问于 2016-11-10 22:21:16
回答 2查看 480关注 0票数 4

环顾四周,我发现了关于/etc/resolv.conf有效格式的以下内容:

但是,我在任何地方都找不到resolv.conf关键字是不区分大小写还是区分大小写。它们似乎通常是小写的,但它们必须是小写的吗?如果我发现服务器位于大写的位置,这是否是一个错误?

谷歌搜索出现了这个论坛帖子,其中一个代码示例似乎表明关键字不区分大小写。但是,没有任何权威文件的链接。

/etc/resolv.conf关键字(如nameserver)是否区分大小写?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-11-10 22:36:38

在glibc解析器库中,它们当然是区分大小写的。注意strncmp (区分大小写的比较)而不是strncasecmp (区分大小写的比较)在glibc区域_init.c中的匹配函数中的使用。

这段代码负责读取+解析/etc/resolv.conf文件。

代码语言:javascript
复制
#define MATCH(line, name) \
    (!strncmp(line, name, sizeof(name) - 1) && \
    (line[sizeof(name) - 1] == ' ' || \
     line[sizeof(name) - 1] == '\t'))

    if ((fp = fopen(_PATH_RESCONF, "rce")) != NULL) {
        /* No threads use this stream.  */
        __fsetlocking (fp, FSETLOCKING_BYCALLER);
        /* read the config file */
        while (fgets_unlocked(buf, sizeof(buf), fp) != NULL) {
        /* skip comments */
        if (*buf == ';' || *buf == '#')
            continue;
        /* read default domain name */
        if (MATCH(buf, "domain")) {
            if (haveenv)    /* skip if have from environ */
                continue;
            cp = buf + sizeof("domain") - 1;

此外,快速示例显示查找是如何与nameserver而不是名称服务器中断的。

代码语言:javascript
复制
# cat /etc/resolv.conf
options timeout:2 attempts:5
; generated by /sbin/dhclient-script
search eu-west-1.compute.internal
nameserver 172.31.0.2
# getent hosts www.google.com
2a00:1450:400b:802::2004 www.google.com
# sed -i 's/nameserver/NAMESERVER/' /etc/resolv.conf
# getent hosts www.google.com
#
票数 7
EN

Unix & Linux用户

发布于 2016-11-10 22:40:32

看看glibc的源代码,试图匹配domain和nameserver这样字符串的宏是-

代码语言:javascript
复制
#define MATCH(line, name) \
  (!strncmp(line, name, sizeof(name) - 1) && \
  (line[sizeof(name) - 1] == ' ' || \
   line[sizeof(name) - 1] == '\t'))

与search关键字匹配的行看起来像-

代码语言:javascript
复制
if (MATCH(buf, "search")) {

strncmp()区分大小写,因此该行只匹配小写的search (后面跟着空格或制表符)。其他关键字也是如此。

解析代码会忽略不匹配的行,因此如果您不小心使用SEARCH而不是search,您将不会看到错误:这行将被忽略。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/322461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档