summaryrefslogtreecommitdiff
path: root/root/usr/bin/changedns
Side-by-side diff
Diffstat (limited to 'root/usr/bin/changedns') (more/less context) (ignore whitespace changes)
-rwxr-xr-xroot/usr/bin/changedns42
1 files changed, 42 insertions, 0 deletions
diff --git a/root/usr/bin/changedns b/root/usr/bin/changedns
new file mode 100755
index 0000000..8270e86
--- a/dev/null
+++ b/root/usr/bin/changedns
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+arg0="`basename $0`" # base portion of our filename
+arg1="$1"
+tmpfile="/tmp/resolv.conf.$$"
+
+usage ( ) {
+ echo "usage: $arg0 -a|-r {ip} [{ip}...]"
+ rm -f $tmpfile
+ exit 1
+}
+
+
+[ "$#" -le 1 ] && usage
+
+shift
+
+cp /etc/resolv.conf $tmpfile
+
+case "$arg1" in
+ "-a")
+ for ip in "$@"; do
+ echo $ip
+ grep -sq "^nameserver $ip\$" $tmpfile || echo "nameserver $ip" >>$tmpfile
+ done
+ ;;
+ "-r")
+ for ip in "$@"; do
+ grep -v "^nameserver $ip\$" $tmpfile >$tmpfile.2
+ mv $tmpfile.2 $tmpfile
+ done
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+[ -f $tmpfile ] && cp $tmpfile /etc/resolv.conf
+rm -f $tmpfile
+
+exit 0
+