gateway killer fsockopen (PHP)

Ez az apró PHP függvény bármely helyi gépről futtatva képes a hálózati gateway-t úgy arcul csapni, hogy csak újraindítás után képes visszacsatlakozni az ADSL-re. :)


function check_version () {
$version = null;
if ($fp = @fsockopen ("www.frech.ch", 80)) {
$get = "GET /online-bookmarks/bookmarks/VERSION HTTP/1.0\r\n\r\n";
$data = null;
fwrite ($fp, $get);
while (!feof ($fp)) {
$data .= fgets ($fp, 128);
}
fclose ($fp);
$pos = strpos($data, "\r\n\r\n") + 4;
$version = substr ($data, $pos, strlen ($data));
}
return $version;
}

A távoli fájl létezik és elérhető, de ha mégse így lenne, akkor is max 404 kéne legyen.
Régebben nem volt ilyen probléma, úgyhogy gondolom a PHP 5.3 verzióval jött.

Ettől eltekintve mindmáig az egyik legjobb online könyvjelző kezelőnek tartom.
(Akit bővebben érdekel fentebb ott figyel a címe.)

Hozzászólások

Ne faradozz sockettel, kapcsold be az fopen wrappereket es file_get_contents()!

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

elég sok gagyi/félgagyi routernél lehet blockolni url-t, amit úgy csinál hogy "lehallgatja" a tcp folyamokat, majd amiben rátalál az általa keresett dologra, egyszerűen elvágja. Ha most szarul van megírva a parser, lazán képes végtelen ciklusban keresni a maradék, szabványban létező, de itt szarul implementált részeket.

Így van, szépen el lehet szeparálni a dolgokat konfigurálás szempontjából.
Alapból kikapcsolva, mert nincs rá szükség az esetek 99%-ban, akinek erre van szüksége, annak bekapcs, remélve hogy normálisan írta meg a kódját, így biztos hogy nem fogják megtörni az oldalát.
Nem azért kapcsoljuk ki hogy kiszúrjunk az ügyféllel, hanem hogy az esetenként eszetlen kódjaikat ne fél perc alatt tördeljék meg (lásd include($_GET['oldal']); megoldásokat).

Nem ertem, a soap-hoz/xmlrpc-hez miert kellene url_fopen vagy fsocketopen? Azok tisztan XML alapu cuccok, ugyan elegge eltero modon mukodnek, de valojaban XML kommunikacio van csak.

Egyebkent szerintem a curl biztonsagosabb az url-es fopen vagy a fsocketopen-nel, azt lehet engedni...

Ja, lehet felreertettel, en soap server oldali dologra gondoltam, nem kliensnek.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Nem ertem, a soap-hoz/xmlrpc-hez miert kellene url_fopen vagy fsocketopen? Azok tisztan XML alapu cuccok, ugyan elegge eltero modon mukodnek, de valojaban XML kommunikacio van csak.

soap vagy xmlrpc kliensre gondoltam, ott neked kell kifele nyulkalnod, ezert vagy engedelyezni kell az adott extensiont, vagy ha valami php-ban irt libet hasznalsz, akkor az valszeg socketopen-t fog hasznalni.

Egyebkent szerintem a curl biztonsagosabb az url-es fopen vagy a fsocketopen-nel, azt lehet engedni...

emberi hulyeseg ellen egyik sem ved.
normalis kod pedig nem attol lesz biztonsagosabb, mert a file_get_contents helyett curl_exec-cel van betoltve a remote xml.

Tyrael

Persze, hulyeseg ellen semmi nem ved.

Mondjuk az a gond, hogy en mindig hosting oldalrol gondolkodok, es a curl-hoz azert kell egy picit tobb hozzaertes, mint a file_get_contents -hez, azt talan jobb engedelyezni.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.