![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam, cały dzień się z tym męczę i mi nie wychodzi, a jestem kompletnie zielony jeśli chodzi o PHP. Mianowicie, próbuję na forum dodać skrypt, który sprawdzałby status serwera. Próbowałem już używać socketów, stosując to:
I skrypt w zasadzie działał, bo kiedy podałem IP i Port serwera, na którym stoi forum, to wyświetlało mi poprawnie. Natomiast, kiedy podałem IP i Port login serverów, to wyświetlało "Offline" i error: Connection timed out, pomimo tego, że serwer był włączony. Puściłem jeszcze pinga na adres tego serwera z konsoli Windowsa i gubiło wszystkie pakiety, więc doszedłem do wniosku, że serwer jest chroniony jakimś firewallem czy coś. Wtedy, ktoś mnie pokierował, żeby zrobić skrypt, który zczytuje wartość dla "serverStatus" (bodajże: 0 - offline, 1 - online, 2 - busy) z tego pliku: http://ll.leagueoflegends.com/pages/launcher/euw Mój problem polega na tym, że nie wiem jak to zrobić. Czytałem trochę chociażby o file_get_contents(), ale kiedy napiszę coś w stylu:
to zamiast wyświetlić mi zawartość tego pliku, to na forum pojawia się obrazek z CAPTCHą i komunikat, abym udowodnił, że nie jestem botem. Nie wiem też jak później wywołać te "serverStatus", żeby potem napisać do tego warunek na status serwera. Z góry dzięki za pomoc. ![]() |
|
|
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
najpierw sprawdź czy plik istnieje, a potem za pomocą if wyświetl status ;)
może Ci sie uda za pomocą: http://us3.php.net/file_get_contents#refse...ontents-seealso |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze zrozumiałem; do sprawdzenia czy plik istnieje służy chyba file_exists i mógłbym napisać coś w stylu:
ale przecież, to że plik istnieje nie znaczy, że serwer jest włączony ? Bardziej chodzi o zawartość pliku, fragment "serverStatus" - skrypt powinien zczytywać jaka jest jego wartość i na podstawie tego wyświetlać stosowną informację. |
|
|
![]() ![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Nie znam się na serwerze gry lol, ale na serwerze gry minecraft jest plik, który powstaje po włączeniu serwera.
w tej grze powinien też taki być ![]() ale mogę się mylić ![]() --------- hmm... możesz też wykorzystać skrypt, który sprawdza plik czy znajduje się w nim ciąg znaków w tym przypadku "serverStatus":1 to status ONLINE, "serverStatus":0 OFFLINE ![]() ----------------- albo zastosuj: dla Ciebie:
Ten post edytował Popek231 21.11.2013, 23:35:37 -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
To jest chyba po prostu kod launchera lola, który można uruchomić niezależnie od tego, czy serwer jest online czy offline, ale właśnie w tym launcherze jest wyświetlany status login servera, więc zczytując dany fragment mógłbym napisać warunek i stworzyć taki prosty status serwerów.
Cytat hmm... możesz też wykorzystać skrypt, który sprawdza plik czy znajduje się w nim ciąg znaków w tym przypadku "serverStatus":1 to status ONLINE, "serverStatus":0 OFFLINE Tylko właśnie nie potrafię dojść do tego jak to zrobić ![]() @edit O dzięki, nie zobaczyłem edita, bo sam wtedy pisałem posta. Zaraz to wypróbuję. @edit2 Nie działa, dostaję takie coś: Kod Fatal error: Can't use function return value in write context in /home/a2292042/public_html/index.php(400) : eval()'d code(24) : eval()'d code on line 3 to by była linijka dla if, w ogóle można użyć jednocześnie ' i " jedno po drugim ? Ten post edytował Akiro 21.11.2013, 23:50:29 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
tak, można użyć " po ', ponieważ wtedy php szuka zamknięcia czyli ', a nie " i nic nie robi sobie z tego, że " się tam znajduje
![]() możesz za pomocą JS odczytać zawartość tego pliku, dać w ukryte pole w form'ie, gdy kliknie się na stronie, żeby pokazało status, wyśle się kod tego pliku / strony i php sprawdzi wtedy status, gdyż chyba w AJAXie nie umiesz napisać, by automatycznie wtedy się to wyświetlało, na "żywo" podczas ładowania ![]() tyle ode mnie na dziś, branoc:) pokaż co się tam dzieje, tzn kod pokaż Ten post edytował Popek231 22.11.2013, 00:07:58 -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dziwne, bo błąd "sam się naprawił" (po prostu jeszcze raz wkleiłem ten fragment kodu, który podałeś i dostosowałem do swojej zmiennej).
Tyle, że dla takiego warunku skrypt pokazuje "OFFLINE". :< Próbowałem jeszcze, go przerobić na coś takiego:
I pokazało mi, że jest Online, ale to samo wyświetlało dla "serverStatus":0 ![]() ![]() Ten post edytował Akiro 22.11.2013, 00:17:17 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
co wyskakuje, gdy wpiszesz
kod, który się znajduje na stronie? -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Aj, poprawiłem i teraz znowu wyświetla "Offline". Domyślam się dlaczego, bo: co wyskakuje, gdy wpiszesz kod, który się znajduje na stronie? skutkuje pojawieniem się czegoś takiego na forum: http://i.imgur.com/uuf5iu4.jpg Więc skrypt nawet nie może przeczytać tamtej wartości. Jest na to jakiś sposób? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
myślę, że JS najlepszy
![]() ale jest jeszcze AJAX.. ![]() -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Czyli nie da się tego w żaden sposób obejść stosując kod php? Skoro tam pojawił się komunikat o Cookies, to może trzeba je jakoś odblokować dla tego skryptu? JS i Ajaxa nie ogarniam kompletnie.
|
|
|
![]() ![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
sam JS wystarczy;)
przesyłasz przez JS formularzem zawartość strony z lola, potem php odczytuje to jako wartość; nie captche i śmiga;) przynajmniej tak powinno być według mnie:D -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
A mógłbyś mnie jakoś pokierować jak przesłać zawartość strony przez taki formularz, a potem to odczytać przez php? Patrzę na te manuale w internecie, ale prawie nic mi to nie mówi :/
|
|
|
![]() ![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
teraz testuje wszyskto, ale nie mogę jednak tego zrobić...
ale wiem jak wyświetlić tą stronę: jak wymyślisz jak to wyciągnąć, jesteś w domku;) -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
-Gość- |
![]()
Post
#16
|
Goście ![]() |
użyj tego, zwróć uwagę na useragenta (prawdopodobnie po tym rozpoznają, że jesteś botem)
http://www.jonasjohn.de/snippets/php/curl-example.htm Jak nadal rozpoznaje Cię jako bota, podmień USERAGENT na jakiś nowocześniejszy (listę useragentow przegladarek znajdziesz gdzieś w necie). |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Teraz nie rozpoznaje mnie jako bota, tylko po prostu nic nie wyświetla. Podmieniłem te useragenty na swoje własne.
@edit Wcześniej źle wywołałem funkcję. Teraz pomimo tego, że ustawiałem różne useragenty cały czas wywala to CAPTCHA. Jakieś pomysły? Ten post edytował Akiro 22.11.2013, 18:04:58 |
|
|
![]() ![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
próbuję cały dzień coś z tym wykombinować, bo sam jestem ciekawy jak to zrobić..
podaj IP serwera, spróbuję sprawdzić wszystkie możliwe opcje sprawdzenia statusu:D Ten post edytował Popek231 23.11.2013, 14:51:13 -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem tymi curlami, tak jak ktoś podał wyżej i cały czas wyświetlało CAPTCHA i żebym włączył ciasteczka, dlatego do tego skryptu z linku dodałem jeszcze zapisywanie ciasteczek do pliku.
Cały czas nie pozwala czytać tej strony, ale w cookie.txt mam coś takiego (nie wiem co to znaczy :X): Kod # Netscape HTTP Cookie File # http://www.netscape.com/newsref/std/cookie_spec.html # This file was generated by libcurl! Edit at your own risk. .leagueoflegends.com TRUE / FALSE 1577145000 __cfduid d67bc2ab035f6fa45669618cc7e50b0891385209535263 Co do IP - przykładowo: prod.eu.lol.riotgames.com (jeśli chcesz dokładne IP, to puść pinga na ten adres, ale pakietów i tak nie odbiera :/), port:2099. I to jest TCP jak coś. Ten post edytował Akiro 23.11.2013, 14:51:34 |
|
|
![]() ![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
hmm.. aktualnie nie sprawdzę tego IP na stronie, bo zlagowana jest cała przez ugu.pl :/
czytałem przedtem, że sock nie działa na darmowych hostingach, ponieważ go blokują.. jeśli taki masz, chyba nie masz szans na to, że działaś przez sock będzie;) -------------------- Pomogłem? Wiesz co kliknąć w odpowiednim miejscu :)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 03:50 |