Wpis pochodzi z forum linux360.pl, gdzie mój poprzedni wątek o "podobnym" temacie zniknął, niektórzy się pewnie domyślają dlaczego, inni niekoniecznie. Tak czy siak moje intencje były dobre i miały szlachetne pobudki. Zaś po krótkiej rozmowie z moderatorem postanowiłem, że napiszę to tak jak powinno być napisane, a że może okazać się to niezwykle przydatne udostępniam to także na innych forach.
Treść właściwa:
Wielu z was chciało by za pomocą skryptu sprawdzać nowe wiadomości na nk czy na innych tego typu serwisach. Mając taki skrypt można byłoby go dodać do conky'ego i być zawsze na bieżąco. Postaram się wam nieco pomóc w napisaniu takiego skryptu.
Co należy wiedzieć:
Zacznijmy od tego, że większość serwisów opiera się na wymianie informacji metodami GET i POST. My skoncentrujemy się na tej drugiej metodzie, a mianowicie POST, gdyż to ona wysyła informacje do serwera.
Co, jak i gdzie?
Wiemy jaka metoda odpowiada za wysyłkę ale co wysyła, gdzie wysyła i jak wysyłać z poziomu konsoli. No to po kolei, co tak właściwie wysyłamy do tego serwera, żeby to sprawdzić szybko, łatwo i przyjemnie, bez babrania się w kodzie, potrzebować będziemy wtyczki do Firefoxa o nazwie Live HTTP Headers. Jej instalacja nie jest jakoś specjalnie trudna więc nikt nie powinien mieć żadnych problemów. Po jej instalacji w zakładce ,,Narzędzia'' mamy nową pozycję (Live HTTP Headers), uruchamiamy ją, i sprawdzamy jak to działa.
Po włączeniu ukazuje się nam proste i przejrzyste okienko z czterema zakładkami, my skorzystamy z dobrodziejstw Generatora i Headers. Generator rejestruje praktycznie wszystko, od GET, poprzez POST aż po redirects. Zaś Headers nagłówki. Zobaczmy jak to działa na przykładzie nk.pl. Pamiętajmy, że aby sprawdzić okienko Live HTTP Headers musi być ciągle otwarte. Wchodząc na nk.pl w Generatorze widzimy masę GET-ów, ale to nas nie interesuje, my potrzebujemy POST-ów więc przechodzimy do logowania, odznaczamy ,,zaloguj bezpiecznie po SSL'' (UWAGA z tego co się orientuje wget nie obsługuje szyfrowania SSL), wpisujemy login, hasło i klikamy zaloguj. Tym razem w generatorze powinno nam śmignąć na początku POST potem same GET. Więc odszukajmy nasze logowanie, które powinno wyglądać mniej więcej tak:
Kod: Zaznacz cały
POST /login login=login&password=haslo
Kod: Zaznacz cały
login=login&password=haslo
Kod: Zaznacz cały
[url]http://nk.pl/login[/url]
Kod: Zaznacz cały
[url]http://nk.pl/login[/url]
Można też co prawda użyć cURL-a czy Lynxa, ale o tym parę wersów niżej.
Oto magiczne polecenie:
Kod: Zaznacz cały
wget -q --user-agent="Tutaj podajemy naszego User-agenta" --keep-session-cookies --save-cookies=zapisane_ciastka.txt --referer=http://nk.pl/ --post-data="wiadomość POST którą wyłuskaliśmy z logów" -O zalogowany.html http://nk.pl/login
Kod: Zaznacz cały
userAgent="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
wget -q --user-agent="$userAgent" --keep-session-cookies --save-cookies=zapisaneciastka.txt --referer=http://nk.pl/ --post-data="login=login&password=haslo" -O zalogowany.html http://nk.pl/login
Kod: Zaznacz cały
wget -q --user-agent="$userAgent" --keep-session-cookies --load-cookies=zapisaneciastka.txt --referer=http://naszreferer.pl/ --post-data="msg=nasza+wiadomosc" -O wiadomosc.html http://nk.pl/login
Kod: Zaznacz cały
logowanie=`wget -q --user-agent="$userAgent" --keep-session-cookies --save-cookies=zapisaneciastka.txt --referer=http://nk.pl/ --post-data="login=login&password=haslo" -O - http://nk.pl/login`
Mam nadzieje, że poradnik się podobał i nie przynudzałem. Więcej o opcjach użytych przy wget macie w podręczniku systemowym. Informacje tutaj zawarte powinny wam pomóc w sprawdzaniu poczty nk czy nawet wysyłaniu wiadomości nk przez konsolę. Przypominam, że na podobnej zasadzie działa większość portali web...
Pozdrawiam Eryk Rutkowski.
PS. Zakaz kopiowania tekstu bez zgody autora.
Edycja:
Przypominam, że spam jest określony w Kodeksie Karnym oraz w Ustaawie o świadczeniu usług drogą elektroniczną.
Więc proszę niech nikt nie wykorzystuje zdobytej tu wiedzy do spamowania jakiegokolwiek serwisu.Art. 269a kk Kto, nie będąc do tego uprawnionym, przez transmisję, zniszczenie, usunięcie, uszkodzenie lub zmianę danych informatycznych, w istotnym stopniu zakłóca pracę systemu komputerowego lub sieci teleinformatycznej, podlega karze pozbawienia wolności od 3 miesięcy do lat 5.
Art. 24 ustawy o świadczeniu usług drogą elektroniczną
1. Kto przesyła za pomocą środków komunikacji elektronicznej niezamówione informacje handlowe, podlega karze grzywny.
2. Ściganie wykroczenia, o którym mowa w ust. 1, następuje na wniosek pokrzywdzonego.
Edycja2
Jak napisałem wcześniej w cURL też się da, więc, jakby ktoś był zainteresowany.
Do zapisywania ciastek, czyli takie polecenie jakby do logowania:
Kod: Zaznacz cały
userAgent="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
curl --user-agent "$userAgent" --cookie-jar zapisaneciastka.txt --referer "http://nk.pl" --data "login=login&password=haslo" http://nk.pl/login
Kod: Zaznacz cały
userAgent="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
curl --user-agent "$userAgent" --cookie zapisaneciastka.txt --referer "http://nk.pl" --data "msg=nasza+wiadomosc" http://nk.pl/wiadomosc_add