2012-02-16 2 views
2

У меня есть достойный сценарий администратора, который проверяет, какие IP-адреса регистрируются на веб-приложении, но мне нужно сделать его более интересным с whois в начале, а затем я подумал, что это geoip.bash IP whois lookup script

На данный момент я хеширован вне WhoIs его часть - моя проблема заключается в том, что, поскольку есть несколько IP-адресов - Whois-не знает, что делать с ними

Любые идеи по этому вопросу было бы здорово ? а также идеи о геопланах были бы прекрасны!

Приветствия

#!/bin/bash 

#Setting date and time (y and z aren't being used at the moment) 
x="$(date +'%d/%b/%Y')" 
y="$(date +'%T')" 
z="$(date +'%T' | awk 'BEGIN { FS =":"} ; {print $1}')" 

#Human readable for email title 
emaildate=$(date +"%d%b%Y--Hour--%H") 

#Setting date and time for grep and filename 
beta="$(date +'%d/%b/%Y:%H')" 
sigma="$(date +'%d-%b-%Y-%H')" 

#Current SSL Access logs 
log='/var/log/apache2/ssl_access.log' 
#Set saved log location 
newlogs=/home/user/Scripts/logs 

grep [email protected] $log | grep $beta | awk 'BEGIN { FS = " " } ; { print $1 }' | sort -u >> $newlogs/adminusage"$sigma".txt 

#Preform whois 
#whoip=`grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' $newlogs/adminusage"$sigma".txt | sort | uniq >> $testing` 
#echo $whoip 
#testing="/home/user/Scripts/testing.txt" 
#IPlookup="/home/user/Scripts/iptest.txt" 


#Preform Usage for the current hour 
if 
grep -v 1.1.1.1 $newlogs/adminusage"$sigma".txt 
then 
#whois $testing >> $IPlookup 
mail -s "Admin Usage for $emaildate" email.com < $newlogs/adminusage"$sigma".txt 
else 
echo 
fi 

ответ

2

Просто используйте цикл и вызвать whois один раз за итерацию

, предполагающих что ваш grep возвращает список IP-адресов, разделенных новой строкой, вы можете сделать что-то вроде этого:

grep ... | sort | uniq | while IFS= read -r ip ; do 
    whois "$ip" >> whatever 
done 
0

Если у вас есть несколько IP-адресов, просто цикл над ними и запустить Whois на каждый:

for address is $whoip ; do 
    whois $address 
done