#!/usr/bin/env python
import os
from pprint import pprint
import socket
import sys

def ifindex_to_ifname(idx):
    for ifname in os.listdir("/sys/class/net"):
        with open("/sys/class/net/%s/ifindex" % ifname, "r") as fh:
            if fh.read().strip() == str(idx):
                return ifname
    return str(idx)

args = sys.argv[1:]

for arg in args:
    r = socket.getaddrinfo(arg, 0, type=socket.SOCK_DGRAM)
    for (af, kind, proto, cname, addr) in r:
        if af == socket.AF_INET:
            (host, port) = addr
            addr = host
        elif af == socket.AF_INET6:
            (host, port, flow, scope) = addr
            if scope:
                addr = host + " % " + ifindex_to_ifname(scope)
            else:
                addr = host
        if af in {socket.AF_INET, socket.AF_INET6}:
            pass
            #addr = addr[0]
        print(af.name, "{", addr, "}")
