Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dane z serwera IRC, sprawdzenie ile jest osób na kanale
Tomplus
post
Post #1





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
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
 
Start new topic
Odpowiedzi
spenalzo
post
Post #2





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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował spenalzo 2.02.2006, 20:24:24
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 15:50