Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Onko kone päällä/netissä?

Sivun loppuun

TETRIS [01.03.2004 16:07:33]

#

Onnistuuko PHP:llä jotenkin selvittää onko jokin kone (jolla on siis joku tietty IP) päällä tai netissä? Ja miten tämä onnistuisi?

Turambar [01.03.2004 16:22:15]

#

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.

Draiz [01.03.2004 16:50:14]

#

<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.";
}
}
?>

Draiz [01.03.2004 18:31:58]

#

Mut siis toi näyttää että onko netissä.

remontti-reiska [01.03.2004 19:52:49]

#

http://mureakuha.com/koodikirjasto/PHP/538
Testaileppa tuota. Se pingaa IP.tä ja jos se vastaa tietokone on päällä ;D.

Draiz [01.03.2004 19:54:19]

#

Joo *nix:eillähän toi toimii, mutta eipä taida toimia wintoosalla.

tomaattigeeni [01.03.2004 19:59:00]

#

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.

remontti-reiska [01.03.2004 20:00:15]

#

Tai sitten suoraan lainausta mureastakuhasta:

function onko_paalla($osote){
$tmp=shell_exec("ping.exe $address");
if(strpos($tmp,'100% loss')===false) { return '<font color="green"><b>Online</b></font>'; }
else { return '<font color="red"><b>Offline</b></font>'; }
}

sooda [01.03.2004 20:13:17]

#

Hm, $osote varmaan kannattaa muuttaa $addressiksi tai toisin päin :P

Draiz [01.03.2004 21:24:17]

#

lainaus:

Tai sitten suoraan lainausta mureastakuhasta:

function onko_paalla($osote){
$tmp=shell_exec("ping.exe $address");
if(strpos($tmp,'100% loss')===false) { return '<font color="green"><b>Online</b></font>'; }
else { return '<font color="red"><b>Offline</b></font>'; }
}

Ja tuossakin tarttee ping.exen mikä ei ole varmasti kaikilla. :P

Antti [01.03.2004 22:11:36]

#

Siis täh... koodihan suorittaa sen pingin palvelimella, jossa tällöin tulee olla ping.exe, eíkä clientillä, joka voi olla Vaikka FreeBSD....

Pikseli [01.03.2004 22:43:30]

#

<?php
$avaaYhteys = @fsockopen('123.123.123.123', '80', $errno, $errstr, 2);
if(!$avaaYhteys) {
     echo 'pois päältä';
     }
else {
     echo 'päällä';
     }
fclose($avaaYhteys);
?>

NiKC [02.03.2004 09:28:28]

#

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

tomaattigeeni [03.03.2004 14:37:30]

#

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. ;)

TETRIS [03.03.2004 17:59:39]

#

Mutta eikös portti skannaus muuten ole laillista jos on sivuston omistaja tai sinne admin oikeudet tai jotain sellasta? Näin ainakin kuhasta luin...

NiKC [04.03.2004 10:57:53]

#

Voihan omalle koneelle tehdä mitä lystää.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta