Badanie: adres zewnętrzny w sieci tor – Bash + SQL
Ostatnimi czasy chciałem potrenować sobie programowanie w shellu i połączyć je z kwerendami w języku SQL. Po paru godzinach przygotowań postawiłem sobie cel (aby nie programować bezcelowo, czego nienawidzę):
Napisać aplikację, która będzie badać i zapisywać adresy zewnętrzne używane po wyjściu z sieci Tor.
Przygotowanie:
Pakiety do zainstalowania: mysql-server, tor, curl.
Implementacja:
Najpierw zebrałem informacje odnośnie kluczowych poleceń:
- echo „{KWERENDA}” | mysql ${baza} –user {uzytkownik} –password={haslo} – kwerendy SQL w bashu,
- date +%Y%m%d%H%M%S,
- curl http://checkip.dyndns.com/ -s -p –socks5 localhost:9050 – pozyskiwanie zew. adresu IP,
- http://api.hostip.info/get_html.php?ip=${adres_ip} – pozyskiwanie danych o położeniu adresu,
- INET_ATON(‚{adres_ip}) oraz INET_NTOA({pole_adresu_w_bazie}) – konwersja adresu do liczby ( obliczeniowo-wydajniejsze przechowywanie w bazie).
Po godzince skrypcik był gotowy i po następnej – wstępnie przetestowany:
#!/bin/bash
#Skrypt sprawdza adres zewnętrzny po przepuszczeniu polaczenia przez siec TOR
#nastepnie zapisuje go do bazy danych (mySQL)
#spassite.wordpress.com
baza=””
pass=””
user=””
OKRES=”15s”
#nie edytować poniżej tej linijki
OSTATNI=””;
while [ 1 ]; do
AKTUALNY=`curl http://checkip.dyndns.com/ -s -p –socks5 localhost:9050 | grep -o -E ‚[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+’`;
clear;
if [ „$AKTUALNY” != „$OSTATNI” ]; then
if [ -n „$AKTUALNY” ]; then
ISTNIEJE=`echo „SELECT count(adres) FROM adresy WHERE adres=INET_ATON(‚${AKTUALNY}’);” | mysql ${baza} –user ${user} –password=${pass} | grep -E ‚[0-1]+’`;OSTATNI=$AKTUALNY;
if [ $ISTNIEJE == 0 ]; then
CZAS=`date +%Y%m%d%H%M%S`;
LINK=”http://api.hostip.info/get_html.php?ip=${AKTUALNY}”
TMP=`curl -s ${LINK}`;
MIASTO=`echo $TMP | cut -d „:” -f 3 | tr -d ‚,. )(‚`;
KRAJ=`echo $TMP | cut -d „:” -f 2 | cut -d „(” -f 1 | tr -d ‚, .()’`;
echo „$CZAS $KRAJ „XXX” $MIASTO „XXX” $AKTUALNY „XXX” $OSTATNI”;
kwerenda=”INSERT INTO adresy(adres,data,kraj,miasto) VALUES INET_ATON(‚${AKTUALNY}’),NOW(),\”${KRAJ}\”,\”${MIASTO}\”);”;echo „Wykonuje kwerende: $kwerenda”;
echo „———-BLEDY?———–„;
echo „$kwerenda” | mysql ${baza} –user ${user} –password=${pass}
echo „———/BLEDY?———–”
else
echo „Adres juz istnieje w bazie”;
sleep $OKRES;
fi
fi
else
#akcje gdy taki sam
echo „Adres juz istnieje w bazie”;
sleep $OKRES;
fi
done
Do zrobienia (przy odrobinie czasu i chęci):
- wyświetlanie tabeli (narazie wywołuję ręcznie poprzez: watch ‚echo „select INET_NTOA(adres),data,kraj,miasto FROM adresy ORDER BY data DESC LIMIT 20;” | mysql zzz -u zzzz –password=zzzzzzz’ ),
- gromadzenie wiekszej ilości danych z WHOIS i magazynowanie w bazie,
- strona php z geolokalizacją.
Podsumowanie:
Skrypt spełnia swoje zadanie choć można go dopracować. Mam nadzieję, że komuś się przyda on sam, bądź jego część. Jak narazie rezultat sieci Tor to zmieniony adres co 10minut.
Banshee 1.0 wydane !
Na stronie projektu ukazała się informacja o wydaniu finalnej wersji odtwarzacza muzyki Banshee.
Część wprowadzonych zmian:
- kolejka odtwarzania,
- automatyczne pobieranie okładek,
- nowa organizacja menu oraz interfejsu,
- zintegrowany odtwarzacz oraz możliwość katalogowania video,
- poprawa wydajności oraz czasu uruchamiania,
- integracja z lastfm.
Irytujące rzeczy dalej występujące:
Mimo usuniecia części bugów, gdy program odmawiał posłuszeństwa i jedynym rozkazem, który respektował był „KILL!”, program dalej nie śledzi katalogu mediów i gdy przeniesiemy część utworów baza sama się nie zaktualizuje. Nadal pojawia się x przy utworze, lecz dalej nie wiadomo co z tym fantem zrobić poza importowaniem utworów ponownie o_O.
Nic… zabieram się do dalszego testowania
Instalacja banshee :
Ubuntu Hardy:
do /etc/apt/sources.list dopisać:
deb http://ppa.launchpad.net/banshee-team/ubuntu hardy main
deb-src http://ppa.launchpad.net/banshee-team/ubuntu hardy main
potem
sudo aptitude update
sudo aptitude install banshee-1
Najnowsze komentarze