1 |
#!/usr/local/bin/bash |
2 |
# Recon |
3 |
# |
4 |
# Douglas Thrift |
5 |
# |
6 |
# $Id$ |
7 |
|
8 |
declare -a interfaces locals remotes |
9 |
|
10 |
while read interface local remote; do |
11 |
interfaces[${#interfaces[@]}]=$interface |
12 |
locals[${#locals[@]}]=$local |
13 |
remotes[${#remotes[@]}]=$remote |
14 |
done < ~/recon.dat |
15 |
|
16 |
function address() |
17 |
{ |
18 |
host $1 | sed -Ee 's/^.* has address ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/\1/p;d' |
19 |
} |
20 |
|
21 |
for ((index = 0; index != ${#interfaces[@]}; ++index)); do |
22 |
interface=${interfaces[$index]} |
23 |
|
24 |
eval `grep "^gifconfig_$interface=" /etc/rc.conf | sed -Ee "s/^gifconfig_$interface=\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"$/declare old_local=\1 old_remote=\2/p;d"` |
25 |
|
26 |
new_local=`address ${locals[$index]}` |
27 |
new_remote=`address ${remotes[$index]}` |
28 |
|
29 |
if [[ $old_local != $new_local ]] || [[ $old_remote != $new_remote ]]; then |
30 |
echo 'Here!' |
31 |
|
32 |
if [[ $old_remote != $new_remote ]]; then |
33 |
sed -e "s/^$old_remote /$new_remote /" -i '' /usr/local/etc/racoon/psk.txt |
34 |
fi |
35 |
fi |
36 |
done |