Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Bindowanie się na swój adres IP
Forum PHP.pl > Forum > Przedszkole
Misiur66
Witam

Mam na nazwie prosty skrypt pobierający dane o serwerze CS. Pewnego razu przestał działać, więc napisałem do supportu.

To ten skrypt:

Kod
$ip = "194.109.69.51";

$fp = @fsockopen("udp://".$ip, 27015);
stream_set_timeout($fp, 10);
//stream_set_blocking($fp, 0);
fwrite($fp, "\xFF\xFF\xFF\xFFTSource Engine Query\x00");
$return = fread($fp, 100);
echo $return;
$data = stream_get_meta_data($fp);

print_r($data);

if($data['timed_out'])
{
    die("Timed Out");
}
else
{
    print_r($data);
}


I odpowiedź z nazwy:

Cytat
zanim wykonuje Pan w skryptach operacje zapisu/odczytu z gniazda sieciowego
proszę zbindować się na swój adres IP.


Co to znaczy? W manualu PHP znalazłęm tylko bindowanie dotyczące serweru z którym się łączy przez alias.

Co mam zrobić?

BTW. Ten skrypt działa na unixstorm, więc jeśli mi nie pomożecie, zmieniam hosting.
nospor
1)Otwieramy manual z naszą funkcją
http://pl.php.net/manual/en/function.fsockopen.php
2) Wciskamy CTRL+F i wpisujemy szukane słowo kluczowe BIND
3) kopiujemy kod, dostosowujemy do siebie i sprawdzamy czy dziala
4) wyniki publikujemy na forum

smile.gif
Misiur66
Próbowałem i wcześniej winksmiley.jpg

Kod
$ip = "193.33.176.148";

$opts = array('socket' => array('bindto' => '85.128.153.53:0'));

$context = stream_context_create($opts);

$fp = @stream_socket_client("udp://".$ip.":27015", $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
stream_set_timeout($fp, 10);
//stream_set_blocking($fp, 0);
fwrite($fp, "\xFF\xFF\xFF\xFFTSource Engine Query\x00");
$return = fread($fp, 100);
echo $return;
$data = stream_get_meta_data($fp);

print_r($data);

if($data['timed_out'])
{
    die("Timed Out");
}
else
{
    print_r($data);
}


array('bindto' => 'IP:0')) - w to miejsce wstawiałem swoje IP, ip serwera, ip routera, ale nic nie działa. Dalej timeout

Edit:

Jak to coś pomoże...

Wynik:
Kod
Array ( [stream_type] => udp_socket [mode] => r+ [unread_bytes] => 0 [seekable] => [timed_out] => 1 [blocked] => 1 [eof] => ) Timed Out[code]


Edit2:

I co, jak zwykle nikt nie wie? sciana.gif
blooregard
Cytat
I co, jak zwykle nikt nie wie?

Myślisz, że jak tak będziesz podbijał, to szybciej dostaniesz odpowiedź?
Misiur66
Nie, ale przynajmniej utrzymam się na górze. Ten problem mam od stycznia, grzecznie czekałem w kolejce, pisałem do linuxpl.com - nie pomogli. Zobaczyłem że działa na nazwie, kupiłem tam serwer - po miesiącu przestało działać. Pisałem do nich - jedyne co otrzymałem, to właśnie coś o bindowaniu. Ale gdzie, to już nie wiem (jeszcze się do systemu z pingwinkiem nie przyzwyczaiłem). Widzę że działa na unixstorm - jak nikt mi nie pomoże to tam się będę musiał przenieść. A jak i tam przestanie działać, to już nie wiem.

Nie wiem gdzie mam bindować - po stronie mojego kodu, czy po stronie serwera, czy i tu, i tam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.