]> git.ipfire.org Git - ipfire-2.x.git/blame - src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch
dnsmasq: Import more upstream fixes
[ipfire-2.x.git] / src / patches / dnsmasq / 0053-Log-parsing-utils-in-contrib-reverse-dns.patch
CommitLineData
6644c1c7
MT
1From 47b9ac59c715827252ae6e6732903c3dabb697fb Mon Sep 17 00:00:00 2001
2From: Joachim Zobel <jz-2014@heute-morgen.de>
3Date: Mon, 23 Feb 2015 21:38:11 +0000
5f206778 4Subject: [PATCH 53/87] Log parsing utils in contrib/reverse-dns
6644c1c7
MT
5
6---
7 contrib/reverse-dns/README | 18 ++++++++++++++++++
6644c1c7 8 contrib/reverse-dns/reverse_replace.sh | 28 ++++++++++++++++++++++++++++
c6ce1e7e 9 2 files changed, 46 insertions(+)
6644c1c7 10 create mode 100644 contrib/reverse-dns/README
6644c1c7
MT
11 create mode 100644 contrib/reverse-dns/reverse_replace.sh
12
13diff --git a/contrib/reverse-dns/README b/contrib/reverse-dns/README
14new file mode 100644
15index 000000000000..f87eb77c4c22
16--- /dev/null
17+++ b/contrib/reverse-dns/README
18@@ -0,0 +1,18 @@
19+Hi.\r
20+\r
21+To translate my routers netstat-nat output into names that actually talk\r
22+to me I have started writing to simple shell scripts. They require \r
23+\r
24+log-queries\r
25+log-facility=/var/log/dnsmasq.log\r
26+\r
27+to be set. With\r
28+\r
29+netstat-nat -n -4 | reverse_replace.sh \r
30+\r
31+I get retranslated output.\r
32+\r
33+Sincerely,\r
34+Joachim\r
35+\r
36+\r
6644c1c7
MT
37diff --git a/contrib/reverse-dns/reverse_replace.sh b/contrib/reverse-dns/reverse_replace.sh
38new file mode 100644
39index 000000000000..a11c164b7f19
40--- /dev/null
41+++ b/contrib/reverse-dns/reverse_replace.sh
42@@ -0,0 +1,28 @@
43+#!/bin/bash
44+# $Id: reverse_replace.sh 4 2015-02-17 20:14:59Z jo $
45+#
46+# Usage e.g.: netstat -n -4 | reverse_replace.sh
47+# Parses stdin for IP4 addresses and replaces them
48+# with names retrieved by reverse_dns.sh
49+#
50+
51+DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
52+DNS=$DIR/reverse_dns.sh
53+
54+# sed regex
55+IP_regex='[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
56+
57+while read LINE; do
58+ if grep --quiet $IP_regex <<< "$LINE"; then
59+ IPs=`sed "s#.*\b\($IP_regex\)\b.*#\1 #g" <<< "$LINE"`
60+ IPs=($IPs)
61+ for IP in "${IPs[@]}"
62+ do
63+ NAME=`$DNS $IP`
64+ # echo "$NAME is $IP";
65+ LINE="${LINE/$IP/$NAME}"
66+ done
67+ fi
68+ echo $LINE
69+done < /dev/stdin
70+
71--
722.1.0
73