25 lines
730 B
Bash
Executable File
25 lines
730 B
Bash
Executable File
#!/bin/bash
|
|
pattern='\b(([01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}([01]?\d{1,2}|2[0-4]\d|25[0-5])\b'
|
|
#count ips in log
|
|
count=$(cat $1 | grep -Po $pattern | sort -u | wc -l)
|
|
#create ip_map for translation of IPs
|
|
paste <(cat $1 | grep -Po $pattern | sort -u) <(paste <(shuf <(for i in {0..255};do echo $i; done)) <(shuf <(for i in {0..255};do echo $i; done)) <(shuf <(for i in {0..255};do echo $i; done)) <(shuf <(for i in {0..255};do echo $i; done)) | tr "\t" "." | head -n $count) > ${1}.ip_map
|
|
|
|
#awk script to replace IPs
|
|
awk_script='
|
|
NR == FNR {
|
|
rep[$1] = $2
|
|
next
|
|
}
|
|
|
|
{
|
|
for (key in rep)
|
|
gsub(key, rep[key])
|
|
print
|
|
}
|
|
'
|
|
#OUTPUT
|
|
cat $1 | awk "$awk_script" ${1}.ip_map -
|
|
|
|
echo "Lookup-Table is stored in ${1}.ip_map" >&2
|