擅长:python、mysql、java
<p>我将构建一个<code>dict</code>并从那里解析链:</p>
<pre><code>data = [
('mail.yahoo.com', 'CNAME', 'login.yahoo.com'),
('foo.com', 'CNAME', 'baz.com'), # Wooops, watch out!
('login.yahoo.com', 'CNAME', 'ats.login.lgg1.b.yahoo.com'),
('ats.login.lgg1.b.yahoo.com', 'CNAME', 'ats.member.g02.yahoodns.net'),
('baz.com', 'A', '204.236.134.199'), # Wooops, watch out!
('ats.member.g02.yahoodns.net', 'CNAME', 'any-ats.member.a02.yahoodns.net'),
('any-ats.member.a02.yahoodns.net', 'A', '98.139.21.169')
]
data = { t[0]:t[1:] for t in data }
def lookup(host):
record_type = None
while record_type != 'A':
record_type, host = data[host]
return host
assert lookup('mail.yahoo.com') == '98.139.21.169'
assert lookup('foo.com') == lookup('baz.com') == '204.236.134.199'
</code></pre>