![]() |
![]() ![]() |
![]() |
![]()
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.(IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]()
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ć (IMG:style_emoticons/default/wink.gif) ale mogę się mylić(IMG:style_emoticons/default/tongue.gif) --------- 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 (IMG:style_emoticons/default/wink.gif) ----------------- albo zastosuj: dla Ciebie:
Ten post edytował Popek231 21.11.2013, 23:35:37 |
|
|
![]()
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ć (IMG:style_emoticons/default/sad.gif) @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 (IMG:style_emoticons/default/smile.gif)
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 (IMG:style_emoticons/default/wink.gif) tyle ode mnie na dziś, branoc:) pokaż co się tam dzieje, tzn kod pokaż Ten post edytował Popek231 22.11.2013, 00:07:58 |
|
|
![]()
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 (IMG:style_emoticons/default/biggrin.gif) Chyba, że tak powinno być, bo ja jednak jestem zielony i nie wiem czy dobrze rozumiem sposób jej działania (IMG:style_emoticons/default/tongue.gif) 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%) ![]() ![]() |
|
|
|
![]()
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 (IMG:style_emoticons/default/wink.gif)
ale jest jeszcze AJAX.. (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
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 |
|
|
![]()
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%) ![]() ![]() |
|
|
|
-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 |
|
|
![]()
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;) |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Sockety są włączone, sprawdzałem w phpinfo.
|
|
|
![]() ![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
hmm.. sprawdź ten (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Takie coś się wyświetla:
Kod Fatal error: Using $this when not in object context in /home/a2292042/public_html/loltest.php on line 2
|
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jeden mądrzejszy od drugiego jeśli chcesz sprawdzić czy serwer działa to sprawdź nagłówki:
http://us3.php.net/get_headers
Ten post edytował com 24.11.2013, 19:10:07 |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
działa, tak?(IMG:style_emoticons/default/wink.gif)
pozdrawiam, Piotrek (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy działa, bo nie bardzo mam jak sprawdzić. Teraz pokazuje status Online, ale nie wiem co by się stało, gdyby któryś z serwerów padł, bo jak na razie cały czas działają. Ale nie do końca rozumiem co ta funkcja "get_headers" robi? Ona próbuje odczytać nagłówki z danej strony, jeśli ta strona odpowiada? Jeśli tak, to skrypt nie będzie działał, bo linki do launchera:
http://ll.leagueoflegends.com/pages/launcher/euw są aktualizowane cały czas i nawet kiedy serwer padnie, to strona będzie się wciąż wyświetlała, a jedynie zmieni się fragment w tym kodzie. Natomiast ip: prod.eu.lol.riotgames.com tą funkcją nie sprawdzę :/ |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
no to wystarczyło wklepać to w google, czy to jest takie trudne?
http://stackoverflow.com/questions/1328367...nd-give-results http://stackoverflow.com/questions/8030789...oing-the-result http://stackoverflow.com/questions/1239068...n-result-in-php |
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 21.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
A przeczytałeś chociaż ten temat? Żaden z tych sposobów nie działa. Pisałem już wcześniej, że pingowanie login servera nic nie daje, bo cały czas lecą timeouty. Serwer jest pewnie chroniony jakimś firewallem, ale najłatwiej jest nie przeczytać całego tematu, podać kilka pierwszych linków z Google i zapytać czy to takie proste. Jakby to było takie proste, to już dawno bym sobie z tym poradził, a wiem, że na pewno jest jakiś sposób, bo są aplikacje na telefon wyświetlające status tych serwerów oraz strony, które także wyświetlają te statusy poprawnie.
|
|
|
![]() ![]()
Post
#29
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 30.03.2012 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
hmm... jeśli chcesz, to możesz spytać się techników takich stron, jak to zrobić, powinni pomóc (IMG:style_emoticons/default/wink.gif)
jak nie, to przynajmniej nakierują Ciebie jak to zrobić;p |
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
lecą timeouty bo taki adres wgl nie istnieje, jakby się sprawdziło to by się wiedziało.. Jasne można pinga wyłączyć, no ale to nie zmienia faktu że wywołanie prod.eu.lol.riotgames.com zwróci informacje ze czegoś takiego nie ma...
#edit ok znalazłem że to leci po porcie 2099 a ping normalny po porcie 80 dlatego nie dostaje odpowiedzi, bo na 80 nic nie ma... http://backdrift.org/how-to-ping-a-tcp-port http://www.letmecheck.it/tcp-ping.php Ten post edytował com 29.11.2013, 23:51:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 15:20 |