Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dane z serwera IRC, sprawdzenie ile jest osób na kanale
Tomplus
post 2.02.2006, 15:53:02
Post #1





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Chciałbym się dowiedzieć wchodząc na stronę, swoją stronę jak można zrobić skrypt (jeżeli się da) który mi sprawdzi ile jest userów na kanale na serverze IRC.

jak narazie takie rzeczy wiem tylko pisząc skrypty w mIRC, ale raczej tego jezyka nie można wykorzystać w pisaniu w php.

moze gdzieś już jest zrobiony taki bajerek , chętnie bym przetestowałbym na stronie.
Go to the top of the page
+Quote Post
hwao
post 2.02.2006, 16:11:06
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Otwierasz specyfikacje irc'a i jazda smile.gif

fsockopen i analizujesz dane winksmiley.jpg

w internecie jest pelno informacji jak napisac bota ircowego w php, lub tez zciagni gotowce
Go to the top of the page
+Quote Post
spenalzo
post 2.02.2006, 16:16:34
Post #3





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Napisanie skryptu wchodzącego na irc i pobierającego użytkowników to 10 minut roboty winksmiley.jpg Protokół IRC jest imo jednym z najbardziej przejrzystych tongue.gif

Specyfikacja --> http://rfc.net/rfc1459.html


--------------------

Go to the top of the page
+Quote Post
Tomplus
post 2.02.2006, 18:02:12
Post #4





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


@hwao
z manuala o tym fsockopen wyniosłem tyle ze mi to NIE działa!
wpisuje adres serwera:port i nie mam zadnych danych
to samo jak przy próbie ładowania zwykłej strony o porcie 80
próbuje się dostać do:
irc.quakenet.org:6667-6669
Go to the top of the page
+Quote Post
spenalzo
post 2.02.2006, 20:19:44
Post #5





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


OK, pomylilem sie - zajeli mi to 15 minut sadsmiley02.gif

  1. <pre><?php
  2. $nick="pasibrzuch_".rand(1,10);
  3.  
  4. $fp=fsockopen("irc.quakenet.org",6667);
  5.  
  6. fwrite($fp,"NICK ".$nick."\r\n");
  7. fwrite($fp,"USER ".$nick." ".$nick." ".$nick." :Jan Kowalski\r\n");
  8. while(!feof($fp))
  9. {
  10. $wiersz=fgets($fp,1024);
  11. flush();
  12. if(strstr($wiersz, "PING :"))
  13. {
  14. $tmp=explode(":",$wiersz);
  15. fwrite($fp,"PONG :".trim($tmp[1])."\r\n");
  16. fwrite($fp,"JOIN #kanal\r\n");
  17.  
  18. }
  19.  
  20. $x=explode(" ",$wiersz);
  21. if($x[1]=="353")
  22. {
  23. $nicki=array_slice($x,5);
  24. }
  25.  
  26.  
  27. if(strstr($wiersz, "End of /NAMES list"))
  28. {
  29. fclose($fp);
  30. break;
  31. }
  32. }
  33. print_r($nicki);
  34. ?></pre>



wywolanie skryptu zajmuje okolo 10 sekund, wiec zapomnij o wyswietlaniu tego przy przeladowaniu strony. Pamietaj, że każde wywolanie skryptu na ircu wyglada tak:
Cytat
[20:14] * Joins: pasibrzuch_6 (~pasibrzuc@xxx.neoplus.adsl.tpnet.pl)
[20:15] * Quits: +pasibrzuch_6 (~pasibrzuc@xxx.neoplus.adsl.tpnet.pl) (Read error: EOF from client)
[20:15] * Joins: pasibrzuch_2 (~pasibrzuc@xxx.neoplus.adsl.tpnet.pl)
[20:16] * Quits: +pasibrzuch_2 (~pasibrzuc@xxx.neoplus.adsl.tpnet.pl) (Read error: EOF from client)
[20:19] * Joins: pasibrzuch_8 (~pasibrzuc@xxx.neoplus.adsl.tpnet.pl)
[20:19] * Quits: +pasibrzuch_8 (~pasibrzuc@xxx.neoplus.adsl.tpnet.pl) (Read error: EOF from client)

co w krótkim czasie może doprowadzić użytkowników do bialej gorączki.
Innym wyjściem jest, żeby bot siedzial na kanale caly czas, i co np. 10 minut zapisywal wynik do pliku tekstowego tak jak to kiedyś bylo na tym forum zrobione tongue.gif (też przeze mnie)

Cytat
z manuala o tym fsockopen wyniosłem tyle ze mi to NIE działa!
wpisuje adres serwera:port i nie mam zadnych danych
to samo jak przy próbie ładowania zwykłej strony o porcie 80

O ile dobrze pamiętam to nic nie dostaniesz dopóki czegoś nie wyślesz tongue.gif

Ten post edytował spenalzo 2.02.2006, 20:24:24


--------------------

Go to the top of the page
+Quote Post
Tomplus
post 2.02.2006, 21:47:48
Post #6





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


[cenzura]

@spenalzo
to jest ładny prosty skrypt, ale za cholere nie wiem dlaczego mi nie działa!

wrzucam do pliku
zmieniam kanał na ten co ja chce sprawdzić
czekam 5-10-15 s. i strona się wczytuje - pusta!

ten twój skrypcik mi nie działa a wcześnie próbowałem uruchomić php-egg czyli bota w php, skutek był identyczny => czyli pojawia się NIC.
Go to the top of the page
+Quote Post
spenalzo
post 2.02.2006, 21:52:22
Post #7





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ja mam podobny efekt na jednym z serwerów - zablokowane wszystkie polaczenia do sieci IRC. Ewentualnie jakiś inny problem z siecią (jeżeli odpalasz ze swojego kompa).


--------------------

Go to the top of the page
+Quote Post
Tomplus
post 2.02.2006, 22:10:41
Post #8





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


domowy, 1 platny i 1 darmowy = 3 serwery na których testowałem

wszędzie skutek taki sam.
Go to the top of the page
+Quote Post
spenalzo
post 2.02.2006, 22:17:35
Post #9





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Szczerze mówiąc to nie wiem winksmiley.jpg
Nie wiem czy to ma jakieś znaczenie ale testowane to było na php 4.

Edit: sprawdz czy masz włączone wyswietlanie błędów. Wrzuciłem ten skrypt na jeden z serwerów i wyskoczył błąd:
Cytat
Warning:  fsockopen(): unable to connect to irc.quakenet.org:6667 in /home/www/spenalzo/2.php on line 4


Na drugim to samo: "Connection timed out".

Ten post edytował spenalzo 2.02.2006, 22:25:38


--------------------

Go to the top of the page
+Quote Post
hwao
post 3.02.2006, 08:32:37
Post #10


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




error_reporting()

  1. <?php
  2. error_reporting( E_ALL );
  3. ?>


Daj to w 1 lini skryptu
Go to the top of the page
+Quote Post
spenalzo
post 3.02.2006, 09:09:27
Post #11





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


To nic nie da, jedyne błędy to:
Cytat
Warning:  fsockopen(): unable to connect to irc.quakenet.org:6667 in /home/www/spenalzo/2.php on line 4

nic innego sie nie pokazuje tongue.gif


--------------------

Go to the top of the page
+Quote Post
Tomplus
post 3.02.2006, 09:43:33
Post #12





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


a to czasem nie jest wina portu?
Go to the top of the page
+Quote Post
spenalzo
post 3.02.2006, 10:27:25
Post #13





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Wina serwera - zablokowane porty. Możesz spróbwać inne porty, ale generalnie zakres 6667-6670 jest zablkowany, i raczej nic na to nie poradzisz...
Dziwi mnie jedynie, że nie działa na twoim kompie tiredsmiley.gif


--------------------

Go to the top of the page
+Quote Post
Tomplus
post 4.02.2006, 23:21:41
Post #14





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


może to przez firewalla?
Go to the top of the page
+Quote Post
hwao
post 5.02.2006, 10:43:48
Post #15


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




dzialaja Ci klienty mirca na kompie?

jaki masz ten serwer? sam instalowales czy z paczki jakiej?

dales raportowanie bledow? to bys wiedzial czemu masz "pusta strone"
Go to the top of the page
+Quote Post
spenalzo
post 5.02.2006, 16:09:52
Post #16





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Testowane u mnie na PHP4 i PHP5. Jedyne błędy to jakieś o niezdefiniwanej zmiennej tongue.gif

Natomiast, na serwerze zewnetrznym gdzie to sprawdzałem, to admin mi wyjaśnił ze porty 6667-6680 zostały zablokowane.


--------------------

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 14:59