Onnistuuko PHP:llä jotenkin selvittää onko jokin kone (jolla on siis joku tietty IP) päällä tai netissä? Ja miten tämä onnistuisi?
Yksi tapa lienee pingata koneen ip:tä. Se onnistuu unix-pohjaisissa järjestelmissä shell_exec()- tai exec()-funktioilla (sitten unixin ping-komento, en tiedä syntaksista), ellei funktioita ole disabloitu.
<form action="urlping.php" method="post"> <input type="text" name="url"> <input type="submit" name="submit" value="Check"> </form> <?php if (isset($_POST['submit'])) { if($url != "") { if(@fopen("$url", "r")===FALsE) { echo "$url on online"; } else { echo "$url on offline"; } } else { echo "Tunge urli tai tulee turpaan :P."; } } ?>
Mut siis toi näyttää että onko netissä.
http://mureakuha.com/koodikirjasto/PHP/538
Testaileppa tuota. Se pingaa IP.tä ja jos se vastaa tietokone on päällä ;D.
Joo *nix:eillähän toi toimii, mutta eipä taida toimia wintoosalla.
Ihan satavarmaa tapaa tähän ei ole, koska verkoissa, palvelimissa ja tietokoneissa on kaikenlaisia palomuureja, joten ne eivät välttämättä vastaa pingeihin, vaikka olisivat päällä ja verkkoon kytketty. Esim. natin takana olevasta koneesta on vaikea sanoa. Pingaus on kuitenkin se paras tapa.
Tai sitten suoraan lainausta mureastakuhasta:
Hm, $osote varmaan kannattaa muuttaa $addressiksi tai toisin päin :P
lainaus:
Tai sitten suoraan lainausta mureastakuhasta:
Ja tuossakin tarttee ping.exen mikä ei ole varmasti kaikilla. :P
Siis täh... koodihan suorittaa sen pingin palvelimella, jossa tällöin tulee olla ping.exe, eíkä clientillä, joka voi olla Vaikka FreeBSD....
lainaus:
$avaaYhteys = @fsockopen('123.123.123.123', '80', $errno, $errstr, 2);
Sinänsä hyvä ajatus, mutta tämä kertoo vain onko kyseisessä koneessa www-palvelin toiminnassa. Tuossa yllä on niitä "oikeita" ratkaisuja, eli pingaus. Tosin sekään ei aina (kuten yllä on sanottu) ole varma tapa, koska pingin voi jättää huomiotta.
Port-scan lienee toinen melko varma tapa löytää koneita verkosta, tosin hostmastereiden kaveriksi tällä tavalla ei pääse.
Aiheeseen täysin liittymätön ping-ohjelman historia :)
http://ftp.arl.mil/~mike/ping.html
lainaus:
Port-scan lienee toinen melko varma tapa löytää koneita verkosta, tosin hostmastereiden kaveriksi tällä tavalla ei pääse.
Teoriassa ainut täysin varma tapa tarkistaa, onko kone nettiin kytketty, samalla tosin myös laiton. ;)
Mutta eikös portti skannaus muuten ole laillista jos on sivuston omistaja tai sinne admin oikeudet tai jotain sellasta? Näin ainakin kuhasta luin...
Voihan omalle koneelle tehdä mitä lystää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.