Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3 >  
Reply to this topicStart new topic
> Pobieranie opisu z GaduGadu, Funkcja, PHP 4 i 5
Plikownik
post 9.07.2006, 12:12:59
Post #21





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 19.01.2006

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


skrypt nie działa - pokazuje mi się taki błąd - "PROBLEM Z POLACZENIEM: 111 - Connection refused"


--------------------
Windows XP | Telewizja, Radio
Go to the top of the page
+Quote Post
Athlan
post 12.07.2006, 08:24:35
Post #22





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


bim2 to może tak:

  1. <?php
  2. $wyniki_dzialania = array();
  3. $szukany_numer = array(12345, 23456, 34567, 45678);
  4. foreach($szukany_numer as $hehe)
  5. {
  6. array_push($wyniki_dzialania, array($szukany_numer => pack("VVVC",GG_NOTIFY, 5, $hehe, GG_USER_NORMAL)));
  7. }
  8. ?>


i potem opisy są zwranace w tablicy: numerek => opisik smile.gif

masz problem ;p


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
bim2
post 13.07.2006, 07:53:32
Post #23





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


No tak sie teraz da winksmiley.jpg Tylko nie testowalem tego i nie wiem czy zadziala winksmiley.jpg Napisz coś więcej czy działa smile.gif


--------------------
Go to the top of the page
+Quote Post
Athlan
post 14.07.2006, 18:24:56
Post #24





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


@bim2 teraz musi działać... dla każdego numeru tworzona jest tablica numerek => opis, dzięki czemu mozna ponownie wykorzystać tablicę $szukany_numer w mnuiej wiecej taki sposób:

  1. <?php
  2. foreach($szukany_numer as $numer)
  3. {
  4. echo $numer.' ma opis '.$wyniki_dzialania[$numer].'<br />';
  5. }
  6. ?>


wylistuje nam cały wynik smile.gif

pozdro smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
bim2
post 18.07.2006, 08:45:07
Post #25





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Ja rozumiem tlyko ja nie umiem wyciagac pisu i nieorumiem jak on dziala (ten skrypt) Wiec jesli do wyciagniecia opisu wystarczy 1 unpack to OK, powinno dzialać biggrin.gif


--------------------
Go to the top of the page
+Quote Post
Athlan
post 18.07.2006, 08:56:30
Post #26





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


@bim2:

Cytat
Funkcja łączy się z serwerem GG, loguje się na nim, pobiera opis dla podanego numeru i kończy połączenie. W przypadku powodzenia całości operacji funkcja zwraca opis. W przypadku niepowodzenia funkcja zwróci wartość "(bool) false" i w zmiennej podanej jako ostatni, czwaty argument umieści komunikat o błędzie jaki zaistniał.

Szczegóły parametrów do przekazania jak i wyniku działania funkcji znajdują się w jej komentarzu.


Ten post edytował Athlan 18.07.2006, 08:56:41


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
DooBLER
post 13.09.2006, 19:55:00
Post #27





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.08.2006

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


Witam

Mam problem ze skryptem
Jeśli podany do skryptu nr GG nie ma ustawionego opisu to dostaje błąd:
Warning: unpack() [function.unpack]: Type C: not enough input, need 1, have 0 in c:\usr\apache\httpd\html\gg\statusgg.php on line 133
Jeśli opis jest ustawiony to wszystko działa pięknie

Czy ktoś wie jak to obejść ?

Pozdrawiam
Go to the top of the page
+Quote Post
bim2
post 14.09.2006, 18:48:55
Post #28





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Wiem że to głupie ale daj @ przed unpack (@unpack()) I powinno zadziałac haha.gif Ale to jest najprostrze wyjście z sytuacji i może jest baredzije profesjonalne


--------------------
Go to the top of the page
+Quote Post
DooBLER
post 15.09.2006, 19:21:17
Post #29





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.08.2006

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


Cytat(bim2 @ 14.09.2006, 19:48:55 ) *
Wiem że to głupie ale daj @ przed unpack (@unpack()) I powinno zadziałac haha.gif Ale to jest najprostrze wyjście z sytuacji i może jest baredzije profesjonalne


Hehe tak zrobiłem już wczesniej, ale pomyślałem, że nie zaszkodzi zapytać "tęgie głowy" o jakieś bardziej profesionalne rozwiązanie tego problemu.

Myślałem żeby wyciągnąć status przed opisem i wtedy (o ile status rozdziela np "dostepny" != "dostępny z opisem") dać tylko if czy ma rozpakowywać opis czy nie.

Ale jeszcze mam za małego skill'a na zabawe z tymi pakieami aarambo.gif

Pozdrawiam
Go to the top of the page
+Quote Post
bastek8989
post 20.12.2006, 16:13:35
Post #30





Grupa: Zarejestrowani
Postów: 205
Pomógł: 1
Dołączył: 11.09.2006

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


mi wyswietla

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/bastek/public_html/gg_test.php on line 102

102 linijka:
$hash = oblicz_hash($haslo_gg, $tab['klucz']);

:|


--------------------
Web-Anatomy.com - tworzenie serwisów internetowych oraz stron www z okolic Bielska-Białej. Zapraszam.
Go to the top of the page
+Quote Post
kossa
post 20.12.2006, 16:16:58
Post #31





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


co masz linię wyżej?

a to może:

  1. <?php
  2. $hash = oblicz_hash($haslo_gg, $tab["klucz"]);
  3. ?>


Łukasz


--------------------
Go to the top of the page
+Quote Post
bastek8989
post 20.12.2006, 16:50:58
Post #32





Grupa: Zarejestrowani
Postów: 205
Pomógł: 1
Dołączył: 11.09.2006

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


to nie to ^^ przeciez niewyswietla ze jest blad w zapisie

nic sam niedopisywalem - wszystko mam tak jak podane w tym poscie

Ten post edytował bastek8989 20.12.2006, 16:51:25


--------------------
Web-Anatomy.com - tworzenie serwisów internetowych oraz stron www z okolic Bielska-Białej. Zapraszam.
Go to the top of the page
+Quote Post
Sabistik
post 20.12.2006, 16:56:52
Post #33


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Nie wiem czy zauważyliście ale kod z listingu z pierwszym poście, posypał się całkiem (pewnie podczas jakiegoś upgrade forum), są w nim pododawane błędne sleshe.
Go to the top of the page
+Quote Post
ali3n
post 24.12.2006, 05:35:29
Post #34





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 30.06.2005

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


  1. <?php
  2. /* Skrypt napisany w oparciu o klasę www2gg (http://gg.wha.la/)
  3.  * i opis protokołu GaduGadu z projektu EKG (http://dev.null.pl/ekg/docs/protocol.html)
  4.  * Kod można dowolnie wykorzystać pod warunkiem pozostawienia niniejszego koment
    arza
  5.  * Kod jest udostępniony na zasadach OpenSource.
  6.  *
  7.  * @author: Krzysztof Andrzej Błachut vel Bakus <bakus@idn.net.pl>
  8.  * @copyright: 2004-2005 by Krzysztof Andrzej Błachut vel Bakus
  9.  * @package: OpisGG
  10.  * @version: 1.0
  11.  */
  12.  
  13. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  14.  
  15. function oblicz_hash ($haslo, $klucz)
  16. {
  17. $x0=0; $x1=0; $y0=0; $y1=0; $z=0; $tmp=0;
  18. $y0 = ($klucz << 16) >> 16; $y1 = $klucz >> 16 ;
  19. for ($i=0; $i<strlen($haslo); $i++)
  20. {
  21. $x0 = ($x0 & 0xFF00) | ord($haslo[$i]); $x1 &= 0xFFFF;
  22. $y0 ^= $x0; $y1 ^= $x1;
  23. $y0 += $x0; $y1 += $x1;
  24. $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8;
  25. $y0 ^= $x0; $y1 ^= $x1;
  26. $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8;
  27. $y0 -= $x0; $y1 -= $x1;
  28. $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8;
  29. $y0 ^= $x0; $y1 ^= $x1;
  30. $z = $y0 & 0x1F;
  31. $y0 &= 0xFFFF; $y1 &= 0xFFFF;
  32. if ($z <= 16)
  33. {
  34. $tmp= ($y1 << $z) | ($y0 >> (16-$z));
  35. $y0 = ($y1 >> (16-$z)) | ($y0 << $z);
  36. $y1 = $tmp;
  37. }else{
  38. $tmp= $y0 << ($z-16);
  39. $y0 = ($y0 >> (32-$z)) | ( (($y1 << $z) >> $z) << ($z-16) );
  40. $y1 = ($y1 >> (32-$z)) | $tmp;
  41. }
  42. $y0 &= 0xFFFF; $y1 &= 0xFFFF;
  43. }
  44. $hash = hexdec(sprintf("%04x%04x", $y1, $y0));
  45. settype($hash, 'integer');
  46. return $hash;
  47. }
  48.  
  49. /* Funkcja pobiera z serwera GaduGadu opis dla podanego numeru.
  50.  *
  51.  * @param int Numer GG "bramki"
  52.  * @param string Hasło GG "bramki"
  53.  * @param int Numer GG, którego opis funkcja ma pobrać
  54.  * @param var Zmienna w której umieszczony będzie ewentualny komunikat błędu
  55.  * @return mixed Zawiera Opis numeru GG, lub false w przypadku błędu
  56.  */
  57. function get_gg_status($numer_gg, $haslo_gg, $szukany_numer, &$error)
  58. {
  59. // Ustawianie stałych na potrzeby protokołu
  60. define("GG_LOGIN60", 0x0015);
  61. define("GG_STATUS_AVAIL",  0x0002);
  62. define("GG_LOGIN_OK", 0x0003);
  63. define("GG_NOTIFY",  0x0010);
  64. define("GG_USER_NORMAL", 0x0003);
  65.  
  66. $fp = fsockopen( "appmsg.gadu-gadu.pl", 80, $errno, $errmsg, 3 );
  67. if (!$fp)
  68. {
  69. $error = "BRAK POLACZENA Z APPMSG.GADU-GADU.PL, MOZE BYC PRZECIAZONY: " . $errno . " - " . $errstr . "n";
  70. return false;
  71. }else{
  72. $get = "GET /appsvc/appmsg.asp?fmnumber=<$numer_gg> HTTP/1.0rn";
  73. $get.= "Host: appmsg.gadu-gadu.plrn";
  74. $get.= "User-Agent: Mozilla/4.7 [en] (Win98; I)rn";
  75. $get.= "Pragma: no-cachernrn";
  76. fputs($fp, $get);
  77. fgets($fp, 128);
  78. fgets($fp, 128);
  79. $buf = fgets($fp, 128);
  80. preg_match("/s([d.]{8,16}):([d]{1,5})s/", $buf, $adres);
  81. $host = $adres[1];
  82. $port = $adres[2];
  83. fclose($fp);
  84. }
  85.  
  86. // Ustanawianie połączenia z serwerem GG
  87. $fp = fsockopen($host, $port, $errno, $errstr, 10);
  88. if (!$fp)
  89. {
  90. $error = "PROBLEM Z POLACZENIEM: $errno - $errstrnn";
  91. return false;
  92. }
  93. if (!$data = fread($fp, 12))
  94. {
  95. $error = "Polaczenie nieoczekiwanie zamknietenn";
  96. return false;
  97. }
  98.  
  99. // Pobieranie danych z serwera - odbiór klucza do wygenerowania hasha hasła
  100. $tab = unpack("Vtyp/Vrozmiar/Vklucz", $data);
  101. // obliczanie hasha hasła
  102. $hash = oblicz_hash($haslo_gg, $tab['klucz']);
  103. $data = pack("VVVVVVvVvVvCCa".strlen(""), GG_LOGIN60, 0x20 + strlen(""),
  104. $numer_gg, $hash, GG_STATUS_AVAIL, 0x20, 0, 0, 0, 0, 0, 0x14, 0xbe , "");
  105. // wysłanie hasha hasła
  106. fwrite($fp, $data);
  107. if (!$data1 = fread($fp, 8))
  108. {
  109. $error = "Nie rozpoznany bladn";
  110. return false;
  111. }
  112. $tab = unpack("Vlogin_status/Vrozmiar", $data1);
  113. if($tab['login_status'] != GG_LOGIN_OK)
  114. {
  115. $error = "Nie prawidłowe hasło...nn";
  116. return false;
  117. }
  118.  
  119. // Wysłanie listy kontaktów z jednym numerem
  120. $data = pack ("VVVC",GG_NOTIFY, 5, $szukany_numer, GG_USER_NORMAL);
  121. if(!fwrite($fp,$data))
  122. {
  123. $error = "Blad wysylania listy kontaktownn";
  124. return false;
  125. }
  126. // Odebranie pakietu ze specyfikacją następnego pakietu
  127. $data = fread($fp, 8);
  128. $tab = unpack("Vtyp/Vrozmiar", $data);
  129. // Pobranie pakietu opisu
  130. $data = fread($fp, $tab['rozmiar']);
  131. // Zamknięcie połączenia z serwerem
  132. fclose($fp);
  133. $tablica = unpack("Iuin/Cstatus/Iremoteip/Sremoteport/Cversion/Cimagesize/Cunknown/Cdescription_size/a*", $data);
  134. return $tablica[1];
  135. }
  136. ?>

poprawiłem kod , ale nie sprawdzałem:P
Go to the top of the page
+Quote Post
sagittariuspl
post 3.01.2007, 20:01:04
Post #35





Grupa: Zarejestrowani
Postów: 374
Pomógł: 3
Dołączył: 30.12.2006
Skąd: co skąd?

Ostrzeżenie: (10%)
X----


użyłem tego skryptu, ale nie działa. może jakieś sugestie?


--------------------
Tylko sprawdzone typy bukmacherskie na BetGen.pl
Potrzebujesz konta bankowego? Nie? Każdy potrzebuje. Porównaj konta i wybierz najlepsze dla siebie
Zostań milionerem zaczynając od zbierania truskawek. Każdy może być bogaty - to nie mit.
Go to the top of the page
+Quote Post
Raynold
post 9.01.2007, 05:18:22
Post #36





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.01.2006

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


Żeby skrypt działał poprawnie, trzeba włączyć dyrektywę allow_url_fopen. Niestety, nie można tego zrobić poprzez php_ini() i trzeba ustawić to w pliku konfiguracyjnym php.ini lub httpd.conf. Jeśli korzystacie z jakiegoś darmowego konta, to nici - trzeba pogadać z adminem.

Oczywiście, może to być jeden z powodów. Żeby w ogóle sprawdzić, czy na tym polega problem, można wywołać funkcję phpinfo() i sprawdzić wartość allow_url_fopen, ewentualnie skorzystać z ini_get()

PS. Dotyczy to z pewnością tego sposobu przy pobieraniu statusu i używaniu własnych grafik. Nie wiem co z tym na początku tematu - czy tam też jest ten sam problem czy nie; nie testowałem winksmiley.jpg

Ten post edytował Raynold 9.01.2007, 05:25:33
Go to the top of the page
+Quote Post
krl_b
post 12.03.2007, 00:25:03
Post #37





Grupa: Zarejestrowani
Postów: 2
Pomógł: 1
Dołączył: 6.03.2007
Skąd: Kraków

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


działało działało i przestało blink.gif
Fatal error: Maximum execution time of 60 seconds exceeded in ... on line
w tej lini:
  1. <?php
  2. $data = fread($fp, 8);
  3. ?>

potem znów zadziałało pare razy (na localhoście) i po uploadzie padło na hoście w internecie blinksmiley.gif
allow_url_fopen włączone na localu i w necie.

ktoś może coś poradzić?
Go to the top of the page
+Quote Post
suda
post 27.03.2007, 11:25:56
Post #38





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 8.01.2007
Skąd: Warszawa

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


Nigdy nie byłem dobry z wyrażeń ale preg z linii 80 wygląda tak:
  1. <?php
  2. preg_match("/s([d.]{8,16}):([d]{1,5})s/", $buf, $adres);
  3. ?>

a powinien wyglądać tak:
Kod
preg_match("/\s([\d.]{8,16}):([\d]{1,5})\s/", $buf, $adres);

ten highlighter forum przy PHP się coś kiełbasi i backslashe usuwa
Go to the top of the page
+Quote Post
mathewoosh
post 12.04.2007, 08:02:10
Post #39





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 12.04.2007

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


a jak mi pisze ze
Cytat
Nie rozpoznany blad
questionmark.gif wszystkie dotychczasowe sprawy ujalem. na jednym serwerze wszystko chodzi ladnie i pieknie a na drugim niebardzo..

Ten post edytował mathewoosh 12.04.2007, 08:02:55
Go to the top of the page
+Quote Post
soon
post 18.07.2007, 17:16:33
Post #40





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2007

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


Niestety poniższy kod nie zwraca mi żadnej wartości, nie wyświetla też żadnych błędów

  1. <?php
  2. /* Skrypt napisany w oparciu o klasę www2gg (http://gg.wha.la/)
  3.  * i opis protokołu GaduGadu z projektu EKG (http://dev.null.pl/ekg/docs/protocol.html)
  4.  * Kod można dowolnie wykorzystać pod warunkiem pozostawienia niniejszego koment
    arza
  5.  * Kod jest udostępniony na zasadach OpenSource.
  6.  *
  7.  * @author: Krzysztof Andrzej Błachut vel Bakus <bakus@idn.net.pl>
  8.  * @copyright: 2004-2005 by Krzysztof Andrzej Błachut vel Bakus
  9.  * @package: OpisGG
  10.  * @version: 1.0
  11.  */
  12.  
  13. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  14.  
  15. function oblicz_hash ($haslo, $klucz)
  16. {
  17. $x0=0; $x1=0; $y0=0; $y1=0; $z=0; $tmp=0;
  18. $y0 = ($klucz << 16) >> 16; $y1 = $klucz >> 16 ;
  19. for ($i=0; $i<strlen($haslo); $i++)
  20. {
  21. $x0 = ($x0 & 0xFF00) | ord($haslo[$i]); $x1 &= 0xFFFF;
  22. $y0 ^= $x0; $y1 ^= $x1;
  23. $y0 += $x0; $y1 += $x1;
  24. $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8;
  25. $y0 ^= $x0; $y1 ^= $x1;
  26. $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8;
  27. $y0 -= $x0; $y1 -= $x1;
  28. $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8;
  29. $y0 ^= $x0; $y1 ^= $x1;
  30. $z = $y0 & 0x1F;
  31. $y0 &= 0xFFFF; $y1 &= 0xFFFF;
  32. if ($z <= 16)
  33. {
  34. $tmp= ($y1 << $z) | ($y0 >> (16-$z));
  35. $y0 = ($y1 >> (16-$z)) | ($y0 << $z);
  36. $y1 = $tmp;
  37. }else{
  38. $tmp= $y0 << ($z-16);
  39. $y0 = ($y0 >> (32-$z)) | ( (($y1 << $z) >> $z) << ($z-16) );
  40. $y1 = ($y1 >> (32-$z)) | $tmp;
  41. }
  42. $y0 &= 0xFFFF; $y1 &= 0xFFFF;
  43. }
  44. $hash = hexdec(sprintf("%04x%04x", $y1, $y0));
  45. settype($hash, 'integer');
  46. return $hash;
  47. }
  48.  
  49. /* Funkcja pobiera z serwera GaduGadu opis dla podanego numeru.
  50.  *
  51.  * @param int Numer GG "bramki"
  52.  * @param string Hasło GG "bramki"
  53.  * @param int Numer GG, którego opis funkcja ma pobrać
  54.  * @param var Zmienna w której umieszczony będzie ewentualny komunikat błędu
  55.  * @return mixed Zawiera Opis numeru GG, lub false w przypadku błędu
  56.  */
  57. function get_gg_status($numer_gg, $haslo_gg, $szukany_numer, &$error)
  58. {
  59. // Ustawianie stałych na potrzeby protokołu
  60. define("GG_LOGIN60", 0x0015);
  61. define("GG_STATUS_AVAIL",  0x0002);
  62. define("GG_LOGIN_OK", 0x0003);
  63. define("GG_NOTIFY",  0x0010);
  64. define("GG_USER_NORMAL", 0x0003);
  65.  
  66. $fp = fsockopen( "appmsg.gadu-gadu.pl", 80, $errno, $errmsg, 3 );
  67. if (!$fp)
  68. {
  69. $error = "BRAK POLACZENA Z APPMSG.GADU-GADU.PL, MOZE BYC PRZECIAZONY: " . $errno . " - " . $errstr . "n";
  70. return false;
  71. }else{
  72. $get = "GET /appsvc/appmsg.asp?fmnumber=<$numer_gg> HTTP/1.0rn";
  73. $get.= "Host: appmsg.gadu-gadu.plrn";
  74. $get.= "User-Agent: Mozilla/4.7 [en] (Win98; I)rn";
  75. $get.= "Pragma: no-cachernrn";
  76. fputs($fp, $get);
  77. fgets($fp, 128);
  78. fgets($fp, 128);
  79. $buf = fgets($fp, 128);
  80. preg_match("/s([d.]{8,16}):([d]{1,5})s/", $buf, $adres);
  81. $host = $adres[1];
  82. $port = $adres[2];
  83. fclose($fp);
  84. }
  85.  
  86. // Ustanawianie połączenia z serwerem GG
  87. $fp = fsockopen($host, $port, $errno, $errstr, 10);
  88. if (!$fp)
  89. {
  90. $error = "PROBLEM Z POLACZENIEM: $errno - $errstrnn";
  91. return false;
  92. }
  93. if (!$data = fread($fp, 12))
  94. {
  95. $error = "Polaczenie nieoczekiwanie zamknietenn";
  96. return false;
  97. }
  98.  
  99. // Pobieranie danych z serwera - odbiór klucza do wygenerowania hasha hasła
  100. $tab = unpack("Vtyp/Vrozmiar/Vklucz", $data);
  101. // obliczanie hasha hasła
  102. $hash = oblicz_hash($haslo_gg, $tab['klucz']);
  103. $data = pack("VVVVVVvVvVvCCa".strlen(""), GG_LOGIN60, 0x20 + strlen(""),
  104. $numer_gg, $hash, GG_STATUS_AVAIL, 0x20, 0, 0, 0, 0, 0, 0x14, 0xbe , "");
  105. // wysłanie hasha hasła
  106. fwrite($fp, $data);
  107. if (!$data1 = fread($fp, 8))
  108. {
  109. $error = "Nie rozpoznany bladn";
  110. return false;
  111. }
  112. $tab = unpack("Vlogin_status/Vrozmiar", $data1);
  113. if($tab['login_status'] != GG_LOGIN_OK)
  114. {
  115. $error = "Nie prawidłowe hasło...nn";
  116. return false;
  117. }
  118.  
  119. // Wysłanie listy kontaktów z jednym numerem
  120. $data = pack ("VVVC",GG_NOTIFY, 5, $szukany_numer, GG_USER_NORMAL);
  121. if(!fwrite($fp,$data))
  122. {
  123. $error = "Blad wysylania listy kontaktownn";
  124. return false;
  125. }
  126. // Odebranie pakietu ze specyfikacją następnego pakietu
  127. $data = fread($fp, 8);
  128. $tab = unpack("Vtyp/Vrozmiar", $data);
  129. // Pobranie pakietu opisu
  130. $data = fread($fp, $tab['rozmiar']);
  131. // Zamknięcie połączenia z serwerem
  132. fclose($fp);
  133. $tablica = unpack("Iuin/Cstatus/Iremoteip/Sremoteport/Cversion/Cimagesize/Cunknown/Cdescription_size/a*", $data);
  134. return $tablica[1];
  135. }
  136.  
  137. echo 'Opis: '.get_gg_status("xxx", "xxx", "4437900", $error).'<br />';
  138. ?>
Go to the top of the page
+Quote Post

3 Stron V  < 1 2 3 >
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: 29.03.2024 - 11:52