function resolve(hostname, alias, cmd, ipaddr, line, name) { alias = "" name = "" cmd = "host -4 -t A " hostname while ((cmd | getline line) > 0) { if (match(line, / is an alias for /)) { alias = substr(line, 1, RSTART-1) } else if (match(line, / has address /)) { name = substr(line, 1, RSTART-1) ipaddr = substr(line, RSTART+RLENGTH) if (length(alias) > 0) { printf "%s %s %s\n", ipaddr, name, alias } else { printf "%s %s\n", ipaddr, name } } } close(cmd) return } { resolve($0) }