php ping
Moderator: Moderatorgrupp
php ping
hej
jag vill ha hjälp med ett ping skript i php
det ska vara så att när jag går in på min hemsida så ska det stå vilka ip adressr som är online i en lista tex:
192.168.0.111 is online
192.168.0.101 is offline
och så vidare
och så vidare men jag hittar ingen guide eller skript som funkar kan någon hjälpa?
PS: jag vill inte kolla alla ip adresser, jag vill bara skriva in ip adresserna på något sätt i php documentet som ska visas inte alla.
jag vill ha hjälp med ett ping skript i php
det ska vara så att när jag går in på min hemsida så ska det stå vilka ip adressr som är online i en lista tex:
192.168.0.111 is online
192.168.0.101 is offline
och så vidare
och så vidare men jag hittar ingen guide eller skript som funkar kan någon hjälpa?
PS: jag vill inte kolla alla ip adresser, jag vill bara skriva in ip adresserna på något sätt i php documentet som ska visas inte alla.
sigun004
Jag hittar bara 4 ping-kommandon in PHP.
http://se.php.net/manual/en/function.shell-exec.php
Sätt upp en array med de IP-adresser du vill kolla, och så loopar du igenom arrangen och kör:
Hoppas det är till någon hjälp.
/marcus
- imap_ping — Check if the IMAP stream is still active.
- maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down. (MaxDB)
- mysql_ping — Ping a server connection or reconnect if there is no connection. (MySQL)
- pg_ping — Ping database connection (PostgreSQL)
http://se.php.net/manual/en/function.shell-exec.php
Sätt upp en array med de IP-adresser du vill kolla, och så loopar du igenom arrangen och kör:
Kod: Markera allt
$ip = array('192.168.0.111', '192.168.0.101'); // Fyll på denna...
for ($i = 0; $i < count($ip); $i++) {
$output = shell_exec('ping ' . $ip[$i]);
// gör vad som behövs med $output...
}
/marcus
Om du menar online på forumet så är det ju enklast att kolla i tabellen phpbb_sessions. session_ip och session_time så får du anta att dom som inte varit aktiva på några minuter inte är online längre.
Om du vill kolla på hela siten så bör du nog skapa en tabell i databasen för det och stoppa in ip och tid i den vid alla sidvisningar. Använd session_id så du uppdaterar fälten istället för att skapa nya om besökaren bläddrar runt en stund. Sen kollar du med ditt skript likadant som i exemplet ovan.
Skriptet kan ju kolla båda tabellerna så ser du både dom som är på forumet och dom som är på övriga siten.
Om det är så du menar.
/J
Om du vill kolla på hela siten så bör du nog skapa en tabell i databasen för det och stoppa in ip och tid i den vid alla sidvisningar. Använd session_id så du uppdaterar fälten istället för att skapa nya om besökaren bläddrar runt en stund. Sen kollar du med ditt skript likadant som i exemplet ovan.
Skriptet kan ju kolla båda tabellerna så ser du både dom som är på forumet och dom som är på övriga siten.
Om det är så du menar.
/J
Detta blir ju svårt eftersom användare ofta har olika IP-adresser, ibland samma som andra pga av internetoperatörer har en pool med IP-adresser som de delar ut ur när du ansluter dig. Du kan alltså inte binda specifika användare till specifika IP-adresser.
Enklast är att lista "Who's Online", då ser du vilka användare som bläddrar runt och vilket IP de ansluter från.
Enklast är att lista "Who's Online", då ser du vilka användare som bläddrar runt och vilket IP de ansluter från.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide
The Complete phpBB Template Design Guide
Ja, i en sådan miljö är det möjligt.
Jag föreslår isf att du skapar en tabell i databasen där du registrerar det IP en person ansluter med, och uppdaterar informationen varje gång personen loggar in (dvs IP <-> UID).
I adminpanelen har du sedan en sidan som listar alla användare och använder sig av informationen i sessions och tabellen du skapade (IP <-> UID) för att lista vilka som är anslutna och vilka som inte är det.
Jag föreslår isf att du skapar en tabell i databasen där du registrerar det IP en person ansluter med, och uppdaterar informationen varje gång personen loggar in (dvs IP <-> UID).
I adminpanelen har du sedan en sidan som listar alla användare och använder sig av informationen i sessions och tabellen du skapade (IP <-> UID) för att lista vilka som är anslutna och vilka som inte är det.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide
The Complete phpBB Template Design Guide
Nej, något får du göra själv.sigun004 skrev:hjälp mig med kod då då kail
Jag kan ge dig råd men jag kommer inte skriva någon kod, det har jag faktiskt inte tid till. Kanske tumba25 kan hjälpa dig komma igång.
Det du behöver till att börja med är en databastabell med uid och ip (int 16).
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide
The Complete phpBB Template Design Guide
Om du ska köra detta på din lokala dator för ditt eget hemma-nätverk kan du lika gärna strunta i databaser och hårdkoda ip'na i skriptet.
Använd Marcus exempel och lägg in ip-numren i en array. Sen när du loopar du genom den skriver du ut x.x.x.x online och/eller x.x.x.x offline beroende på vad output innehåller.
Om du köri en cli ser du vad svaret blir när datorn svarar respektive inte svarar.
Om jag skulle skriva något liknande för att använda hemma lokalt tror jag inte att jag skulle välja att köra något via vebbläsaren. Om det är några datorer som inte svarar och du har gott om datorer i nätverket är risken stor för time-out innan skripet är klar.
/J
Använd Marcus exempel och lägg in ip-numren i en array. Sen när du loopar du genom den skriver du ut x.x.x.x online och/eller x.x.x.x offline beroende på vad output innehåller.
Om du kör
Kod: Markera allt
ping 192.168.0.1
Om jag skulle skriva något liknande för att använda hemma lokalt tror jag inte att jag skulle välja att köra något via vebbläsaren. Om det är några datorer som inte svarar och du har gott om datorer i nätverket är risken stor för time-out innan skripet är klar.
/J
Kod: Markera allt
markus
<?
$ip = array('192.168.0.111', '192.168.0.101'); // Fyll på denna...
for ($i = 0; $i < count($ip); $i++) {
$output = shell_exec('ping ' . $ip[$i]);
// gör vad som behövs med $output...
}
Kod: Markera allt
sigun004
någonting i stil med:
if ($output == true){
$screen = $ip is online}
else {
$screen $ip is offline}
echo "$screen"
?>
ser det rätt ut med båda koderna ihop?
sigun004
Vilka är online
Användare som besöker denna kategori: 1 och 0 gäst