这个名字解析到哪

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

按两张表,www.example.com 会解析到哪个 IP?(注意顺序)

贯穿本节的两张表:本机 HOSTS(一张名字→IP 的小表)和兜底的 DNS。解析顺序是先查 hosts、命中就用它,否则再问 DNSlookup 交回最终 IP,source_of 交回是谁答的(hosts/dns/无)。

HOSTS = {
    "localhost": "127.0.0.1",
    "db.internal": "10.0.0.5",
    "www.example.com": "127.0.0.55",
}
DNS = {
    "www.example.com": "93.184.216.34",
    "shop.com": "10.0.0.9",
    "db.internal": "203.0.113.9",
}


def lookup(name):
    # 解析顺序:先查本机 hosts,命中就用它,否则再问 DNS
    if name in HOSTS:
        return HOSTS[name]
    if name in DNS:
        return DNS[name]
    return "无"


def source_of(name):
    if name in HOSTS:
        return "hosts"
    if name in DNS:
        return "dns"
    return "无"


def overridden():
    # hosts 把 DNS 的答案盖掉了的名字(两边都有、且不一样)
    return sorted(n for n in HOSTS if n in DNS and HOSTS[n] != DNS[n])

print(lookup("www.example.com"))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论