()
| 28 | |
| 29 | @gen.coroutine |
| 30 | def main(): |
| 31 | args = parse_command_line() |
| 32 | |
| 33 | if not args: |
| 34 | args = ["localhost", "www.google.com", "www.facebook.com", "www.dropbox.com"] |
| 35 | |
| 36 | resolvers = [Resolver(), ThreadedResolver(), DefaultExecutorResolver()] |
| 37 | |
| 38 | if pycares is not None: |
| 39 | from tornado.platform.caresresolver import CaresResolver |
| 40 | |
| 41 | resolvers.append(CaresResolver()) |
| 42 | |
| 43 | family = { |
| 44 | "unspec": socket.AF_UNSPEC, |
| 45 | "inet": socket.AF_INET, |
| 46 | "inet6": socket.AF_INET6, |
| 47 | }[options.family] |
| 48 | |
| 49 | for host in args: |
| 50 | print("Resolving %s" % host) |
| 51 | for resolver in resolvers: |
| 52 | try: |
| 53 | addrinfo = yield resolver.resolve(host, 80, family) |
| 54 | except Exception as e: |
| 55 | print("%s: %s: %s" % (resolver.__class__.__name__, type(e), e)) |
| 56 | else: |
| 57 | print( |
| 58 | "%s: %s" % (resolver.__class__.__name__, pprint.pformat(addrinfo)) |
| 59 | ) |
| 60 | print() |
| 61 | |
| 62 | |
| 63 | if __name__ == "__main__": |
no test coverage detected