> 16; $y1 = $klucz >> 16 ; for ($i=0; $i> 8); $x0 <<= 8; $y0 ^= $x0; $y1 ^= $x1; $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8; $y0 -= $x0; $y1 -= $x1; $x1 <<= 8; $x1 |= ($x0 >> 8); $x0 <<= 8; $y0 ^= $x0; $y1 ^= $x1; $z = $y0 & 0x1F; $y0 &= 0xFFFF; $y1 &= 0xFFFF; if ($z <= 16) { $tmp= ($y1 << $z) | ($y0 >> (16-$z)); $y0 = ($y1 >> (16-$z)) | ($y0 << $z); $y1 = $tmp; }else{ $tmp= $y0 << ($z-16); $y0 = ($y0 >> (32-$z)) | ( (($y1 << $z) >> $z) << ($z-16) ); $y1 = ($y1 >> (32-$z)) | $tmp; } $y0 &= 0xFFFF; $y1 &= 0xFFFF; } $hash = hexdec(sprintf("%04x%04x", $y1, $y0)); settype($hash, 'integer'); return $hash; } function get_gg_status($numer_gg, $haslo_gg, $szukany_numer, &$error) { define("GG_LOGIN60", 0x0015); define("GG_STATUS_AVAIL", 0x0002); define("GG_LOGIN_OK", 0x0003); define("GG_NOTIFY", 0x0010); define("GG_USER_NORMAL", 0x0003); $fp = fsockopen("91.197.13.2", 8074, $errno, $errstr, 10); if (!$fp) { $error = "PROBLEM Z POLACZENIEM: $errno - $errstr\n\n"; return false; } if (!$data = fread($fp, 12)) { $error = "Polaczenie nieoczekiwanie zamkniete\n\n"; return false; } $tab = unpack("Vtyp/Vrozmiar/Vklucz", $data); $hash = oblicz_hash($haslo_gg, $tab['klucz']); $data = pack("VVVVVVvVvVvCCa".strlen(""), GG_LOGIN60, 0x20 + strlen(""), $numer_gg, $hash, GG_STATUS_AVAIL, 0x20, 0, 0, 0, 0, 0, 0x14, 0xbe , ""); fwrite($fp, $data); if (!$data1 = fread($fp, 8)) { $error = "Nie rozpoznany blad\n"; return false; } $tab = unpack("Vlogin_status/Vrozmiar", $data1); if($tab['login_status'] != GG_LOGIN_OK) { $error = "Nie prawidłowe hasło...\n\n"; return false; } $data = pack ("VVVC",GG_NOTIFY, 5, $szukany_numer, GG_USER_NORMAL); if(!fwrite($fp,$data)) { $error = "Blad wysylania listy kontaktow\n\n"; return false; } $data = fread($fp, 8); $tab = unpack("Vtyp/Vrozmiar", $data); $data = fread($fp, $tab['rozmiar']); fclose($fp); $tablica = @unpack("Iuin/Cstatus/Iremoteip/Sremoteport/Cversion/Cimagesize/Cunknown/Cdescription_size/a*", $data); return $tablica[1]; } function getOpis($numerBramki, $hasloBramki, $numerSpr){ $dostepny = ''; if (get_gg_status($numerBramki, $hasloBramki, $numerSpr, $error) == '') { $getOpis = ''; } else { $getOpis = get_gg_status($numerBramki, $hasloBramki, $numerSpr, $error); } $opis = $getOpis; return $opis; } header('Content-Type: application/xml'); echo ''; echo ''; echo ''; echo htmlspecialchars(getOpis('numer_bramki', 'haslo_bramki', 'numer_do_sprawdzenia')); echo ''; echo ''; ?>