summaryrefslogtreecommitdiff
path: root/contrib/reverse-dns/reverse_dns.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/reverse-dns/reverse_dns.sh')
-rw-r--r--contrib/reverse-dns/reverse_dns.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/reverse-dns/reverse_dns.sh b/contrib/reverse-dns/reverse_dns.sh
new file mode 100644
index 0000000..c0fff30
--- /dev/null
+++ b/contrib/reverse-dns/reverse_dns.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# $Id: reverse_dns.sh 4 2015-02-17 20:14:59Z jo $
+#
+# Usage: reverse_dns.sh IP
+# Uses the dnsmasq query log to lookup the name
+# that was last queried to return the given IP.
+#
+
+IP=$1
+qmIP=`echo $IP | sed 's#\.#\\.#g'`
+LOG=/var/log/dnsmasq.log
+
+IP_regex='^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'
+
+if ! [[ $IP =~ $IP_regex ]]; then
+ echo -n $IP
+ exit
+fi
+
+NAME=`tac $LOG | \
+ grep " is $IP" | head -1 | \
+ sed "s#.* \([^ ]*\) is $qmIP.*#\1#" `
+
+if [ -z "$NAME" ]; then
+ echo -n $IP
+else
+ echo -n $NAME
+fi
+