]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch
Core90: Update crontab.
[ipfire-2.x.git] / src / patches / dnsmasq / 0053-Log-parsing-utils-in-contrib-reverse-dns.patch
1 From 47b9ac59c715827252ae6e6732903c3dabb697fb Mon Sep 17 00:00:00 2001
2 From: Joachim Zobel <jz-2014@heute-morgen.de>
3 Date: Mon, 23 Feb 2015 21:38:11 +0000
4 Subject: [PATCH 53/71] Log parsing utils in contrib/reverse-dns
5
6 ---
7 contrib/reverse-dns/README | 18 ++++++++++++++++++
8 contrib/reverse-dns/reverse_replace.sh | 28 ++++++++++++++++++++++++++++
9 2 files changed, 46 insertions(+)
10 create mode 100644 contrib/reverse-dns/README
11 create mode 100644 contrib/reverse-dns/reverse_replace.sh
12
13 diff --git a/contrib/reverse-dns/README b/contrib/reverse-dns/README
14 new file mode 100644
15 index 000000000000..f87eb77c4c22
16 --- /dev/null
17 +++ b/contrib/reverse-dns/README
18 @@ -0,0 +1,18 @@
19 +Hi.
20 +
21 +To translate my routers netstat-nat output into names that actually talk
22 +to me I have started writing to simple shell scripts. They require
23 +
24 +log-queries
25 +log-facility=/var/log/dnsmasq.log
26 +
27 +to be set. With
28 +
29 +netstat-nat -n -4 | reverse_replace.sh
30 +
31 +I get retranslated output.
32 +
33 +Sincerely,
34 +Joachim
35 +
36 +
37 diff --git a/contrib/reverse-dns/reverse_replace.sh b/contrib/reverse-dns/reverse_replace.sh
38 new file mode 100644
39 index 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 --
72 2.1.0
73