Nerdblog.pl

Reklama na blogach - Blogvertising.pl

Telnetowanie w skryptach

Dodano: 21.05.2009

Być może korzystając z mojego skryptu rsget-mod lub w innej sytuacji, potrzebowaliście połączyć się z jakimś zewnętrznym urządzeniem w celu - ja wiem? - restartu routera, zmiany konfiguracji itp. Najczęściej - bo najprościej - używa się do takiego celu telnetu, ponieważ to najbanalniejszy protokół i twórcom sprzętu prościej go implementować niż takie SSH. Pojawia się jednak problem - jak z poziomu skryptu połączyć się z urządzeniem?

Pierwsza rzecz, która przyszła mi do głowy to skierowanie strumienia STDIN do programu klienckiego telnet. Niestety, klasyczne przekazanie strumienia nie działa w tym przypadku (trudne, żeby działało). Potem pomyślałem o netcacie - 'szwajcarskim scyzoryku do TCP/IP'. Niestety, on też nie chciał działać jak trzeba. Męczyłem się, kombinowałem, w końcu jednak Michał Górny przypadkowo naprowadził mnie na dobrą drogę. Przypomniałem sobie jak w zenity rozwiązany jest progressbar i mnie olśniło. Trochę kombinowania i mam rozwiązanie.

Na początku należy samodzielnie połączyć się z panelem, żeby zobaczyć jak wygląda proces autoryzacji. W moim przypadku trzeba połączyć się z ip 192.168.2.1 wpisać login (root) i hasło, a następnie wydać polecenie (u mnie: reboot, potem y). Gdy już wiemy jak to wygląda, konstruujemy banalny skrypcik:

(
	echo "open 192.168.2.1";
	sleep 0.5;
	echo "root";
	sleep 0.5;
	echo "haslo";
	sleep 0.5;
	echo "reboot";
	sleep 0.2;
	echo "y"; 
) | telnet

Jak to działa? Uruchamia telnet i po kolei wpisuje mu w ten sam sposób jak wpisywałaby to osoba z klawiatury kolejne polecenia - połączenie z serwerem, następnie wszystko to co powinno pójść do serwera. Zwróćcie uwagę na te wszystkie polecenia sleep - mają one na celu przytrzymania skryptu na czas łączenia się oraz reakcji sprzętu na wpisywane polecenia. Bez nich wszystko wysłałoby się wszystko równocześnie i zostałoby zagubione w trakcie.

Jak widać, napisanie takiego skryptu jest wbrew pozorom banalne. Mam nadzieję, że przyda się ono osobom korzystającym z mojego skryptu oraz tym, które potrzebują takiego rozwiązania u siebie. Happy hacking ;)

Rapidshare (epic) fail

Dodano: 13.04.2009

Uważajcie, bo to zniszczy wam psychikę: wiecie jak Rapidshare zapamięŧuje użytkowników Premium?

Information about the selected Cookie:

Name: user
Content: {user}:{haslo "zakodowane" hexem w formacie %XX)
Domain: .rapidshare.com
Path: /
Send for: Any type of connection
Expires: 11/13/2024 15:56:15

... ale przynajmniej implementacja ściągania za pomocą kont Premium w rsget-modzie będzie prosta :|

rsget-mod - wersja 0.6 przeniesiona do stable

Dodano: 17.03.2009

Ten wpis jest z dużą dozą prawdopodobieństwa nieaktualny. Wszelkie informacje dotyczące skryptu rsget-mod znajdziesz na oficjalnej stronie projektu oraz google code

Uh, po wielu ciężkich godzinach pisania i testowania (taa, akurat :P) przenoszę wersję 0.6 do stable. Nie wiem szczerze mówiąc jak skrypt poradzi sobie z aktualizacją 0.5.1 → 0.6, ale mam nadzieję, że bezproblemowo, bo nie mam siły dzisiaj się bawić.

Oprócz tego projekt wylądował na Google Code i posiada wersję SVN, którą oznaczam jako 0.7. Chwilowo to po prostu 0.6 ze zmienionym numerkiem, ale jak wrócę do siły to się tym zajmę :)

Rapidshare jest dziwny :|

Dodano: 06.03.2009

Wysłanie HEAD (za pomocą wget --spider) do serwera na dowolny link z Rapidshare zwraca informacje dotyczące pliku, który możesz pobrać, a nie strony poprzedzającej takowe. W jaki więc sposób mogę sprawdzać linki pod kątem pułapek takich jak te ?

rsget-mod - oficjalna strona

Dodano: 21.02.2009

Działa już oficjalna strona skryptu rsget-mod. Starałem się, żeby była ładna i przejrzysta, ale ocena efektu końcowego już nie należy do mnie :)

Zapraszam również poraz kolejny do testów wersji unstable.

Reklamy: sklep komputerowy ,