Você pode usar ip route get
para descobrir como sua máquina seria encaminhada para um IP. Então, se você tem uma lista de IPs em um arquivo, um por linha que você poderia fazer
while read -r addr; do
gw="$(ip route get "$addr" | awk '/via/ {print $3}')"
if [[ -z $gw ]]; then
printf 'No route for %s\n' "$addr" >&2
else
printf '%s,%s\n' "$addr" "$gw"
fi
done < ip_list
Opa, esqueci de incluir o desenvolvedor para você, então aqui está uma solução para isso
while read -r addr; do
ip route get "$addr" | awk -va="$addr" '/via/ {print a "," $3 "," $5} $2 == "dev" {print a ",," $3}'
done < ip_list