bash IP скрипт поиска в whois - PullRequest
       15

bash IP скрипт поиска в whois

2 голосов
/ 16 февраля 2012

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

В данный момент я хэшировал часть 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 user@user.com $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 ]

2 голосов
/ 16 февраля 2012

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

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

grep ... | sort | uniq | while IFS= read -r ip ; do
    whois "$ip" >> whatever
done
0 голосов
/ 16 февраля 2012

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

for address is $whoip ; do
    whois $address
done
...