summaryrefslogtreecommitdiff
path: root/contrib/reverse-dns/reverse_replace.sh
blob: a11c164b7f190600ff2b906129cbe17f4815e887 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# $Id: reverse_replace.sh 4 2015-02-17 20:14:59Z jo $
#
# Usage e.g.: netstat -n -4 | reverse_replace.sh 
# Parses stdin for IP4 addresses and replaces them 
# with names retrieved by reverse_dns.sh
#

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
DNS=$DIR/reverse_dns.sh

# sed regex
IP_regex='[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

while read LINE; do
  if grep --quiet $IP_regex <<< "$LINE"; then
    IPs=`sed "s#.*\b\($IP_regex\)\b.*#\1 #g" <<< "$LINE"`
    IPs=($IPs)
    for IP in "${IPs[@]}"
    do
      NAME=`$DNS $IP`
      # echo "$NAME is $IP";
      LINE="${LINE/$IP/$NAME}" 
    done
  fi
  echo $LINE
done < /dev/stdin