PHP: Online status aan de hand van m'n IP ping??

Pagina: 1
Acties:
  • 212 views sinds 30-01-2008
  • Reageer

  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Heb al in phpfreaks m'n vraag gesteld, maar krijg daar (nog) geen reply na 5 uur.
Dus probeer ik het nu hier...

Ik wil op m'n site laten zien of ik online ben of niet. Nu vraag ik me af of ik dit kan doen door elke keer als m'n 'news' page word aangeroepen mijn eigen IP word gepingd en als er een ping is dan de tekst 'Ik ben nu ook online' echoën en ander 'Ik ben nu niet online' ofzo.
Kan dit?
Iemand die me kan helpen met een script?

PHPfreaks forum:
http://www.phpfreakz.com/forum.php?forum=4&iid=31114

  • smaij
  • Registratie: November 2000
  • Laatst online: 08:09
Crosspost

  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Op vrijdag 12 oktober 2001 14:54 schreef Kyori het volgende:
Om wat behulpzamer te zijn, en je vraag te beantwoorden:

Deze vraag was pasgeleden al eens eerder gesteld, het kan wel; je moet dan middels reguliere expressies het resultaat uitlezen.
Welk topic was dat? Kan niks vinde als ik op IP zoek in webcript.

  • flat
  • Registratie: Mei 2000
  • Niet online
ik weet niet in welk topic ik nou moet replyen, dus doe ik 't maar ff in allebei

bedoel je zoiets, maar dan die text output:

http://flat.wox.org/tmp/status.php?host=gathering.tweakers.net
Afbeeldingslocatie: http://flat.wox.org/tmp/status.php?host=gathering.tweakers.net&ext=png

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Ik weet niet waar dat groene stipje op gebaseerd is?
Waarschijnlijk op de tweakers.net server?

Ding kijkt dan of een domein actief is, en dat werkt niet want ik draai geen eigen server. Ik kan slechts gepingd worden.
Toch??

En dit werkt niet:
http://flat.wox.org/tmp/status.php?host=213.84.192.xxx

Verwijderd

Werkt dit anders?
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$online = exec('ping xxx.xxx.xxx.xxx');
if($online == true)
{
      //Je bent online dude!
}
else
{
     //je bent niet online
}
?>

Of returnt die exec geen bool ofzo?

  • flat
  • Registratie: Mei 2000
  • Niet online
Op vrijdag 12 oktober 2001 17:59 schreef Victorio het volgende:
En dit werkt niet:
http://flat.wox.org/tmp/status.php?host=213.84.192.xxx
nou weet ik natuurlijk niet wat jij voor die xxx invult, maar http://flat.wox.org/tmp/status.php?host=213.84.192.192 geeft bij mij een mooie groene pixel hoor

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
HUH!?
Ja je hebt gelijk.
Maar als ik m'n eigen IP invul is hij toch echt rood.
Hoe kan dit?!?!?!?!?!?

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10:59

Kees

Serveradmin / BOFH / DoC
ping wil je daar niet voor gebruiken, duurt namelijk snel 10 seconden om de pagina te maken als je host dood is.

ik zou zeggen, scan je bak even welke poorten open staan en doe dan iets als:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$fp = fsockopen ("192.168.1.10", '139', $errno, $errstr, 10);
if (!$fp) {
  echo "offline<br>\n";
} else {
  echo "online<br>\n";
  fclose($fp);
}
      
?>

werkt ook prima :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Op vrijdag 12 oktober 2001 21:46 schreef Flat© het volgende:

[..]

nou weet ik natuurlijk niet wat jij voor die xxx invult, maar http://flat.wox.org/tmp/status.php?host=213.84.192.192 geeft bij mij een mooie groene pixel hoor
Nu doetie het wel.
Kan ik ipv een image een tekst weergeven in dat script?
Kun je me dat status.php script mailen? :9
Thnx!

  • flat
  • Registratie: Mei 2000
  • Niet online
you've got mail

"Happiness is a way of travel, not a destination."
--Roy Goodman


Verwijderd

Er staat nu hier Online, kan iemand ff doorgeven hoe ik er een groen of rood stipje voor kan zetten?

http://www.axeweb.nl/ping.php

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 11:16
Op zaterdag 13 oktober 2001 12:15 schreef Binne het volgende:
Er staat nu hier Online, kan iemand ff doorgeven hoe ik er een groen of rood stipje voor kan zetten?

http://www.axeweb.nl/ping.php
[img]"groenstipje.gif"[/img]

of

[img]"roodstipje.gif"[/img]

in je script laten echo-en op de goede plaats

  • flat
  • Registratie: Mei 2000
  • Niet online
of als je alles met GD doet, een imagefill

"Happiness is a way of travel, not a destination."
--Roy Goodman


Verwijderd

ehh ja dat is leuk als je 100000 aan bezoekers per dg hebt wel leuk om iemand zo lam te leggen

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

idd..
je kan dit beter eens in de 5 minuten ofzo op de achtergrond doen (cron, taakplanner)

  • MikeN
  • Registratie: April 2001
  • Laatst online: 10:35
Ik doe het via m'n interne netwerkje:

http://mike.dnsalias.com/info/stats.php

Gewoon een ping...

[edit]
Jesses, ken de adressen op m'n eigen server niet eens meer...

  • flat
  • Registratie: Mei 2000
  • Niet online
Victor Scholte wrote:
Hoi,

Bedankt voor je script, maar het lukt me niet echt om de zaak aan te passen. Ik wil namelijk ipv dat groene of rode plaatje een tekst, Online, of Offline ofzo.
Verder moet altijd mijn eigen IP gepingd worden. Dit is 213.84.192.xxx. Dus geen variabele via url. Hoe laat ik dit automatisch doen? Ik snap dat $host niet namelijk.
Kan je dit voor me aanpassen?
hmmm ik was niet echt van plan om dit helemaal letterlijk voor je uit te gaan werken, maar je gewoon een beetje op gang te helpen. maar helaas (gelukkig voor jou) is dit zó simpel, dat ik 't gelijk maar even heb uitgetikt (btw ik heb dit niet getest, maar 't zou moeten werken)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
if( $ping_cmd = popen( "ping -c 1 -w 1 213.84.192.xxx" , "r" ) )
 {
  while( ! feof( $ping_cmd ) )
   {
    $temp .= fgetc( $ping_cmd );
   }
  $ping_return = pclose( $ping_cmd );
 }

if( $ping_return )
 {
  $status = offline;
 }
 else
 {
  $status = online;
 }
echo ( $status );
?>

edit:

inmiddels heb ik je tweede mail ook gehad (ja sorry kan niets sturen ivm brakke mailserver :( ) als 't werkt is 't goed lijkt mij, maar volgens mij is mijn bovenstaande oplossing nog iets korter
maar gefeliciteerd hoor :)
[offtopic]
waarom heet ik mr blaataap??? als ik dat eerder had gezien had ik niet geholpen hoor :p
[/offtopic]

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Hahaha. :+
Mijn versie voor de tweakers die het willen weten:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
if( !isset( $scan ) ) $scan = "ping";

switch( $scan ){
case "ping":
    if( $ping_cmd = popen( "ping -c 1 -w 1 " . "213.84.192.xxx", "r" ) ){
        while( ! feof( $ping_cmd ) ){
            $temp .= fgetc( $ping_cmd );
        }
        $ping_return = pclose( $ping_cmd );
    }
    if( $ping_return ){ 
        echo("nee!");
    }
    else{
        echo("ja!");
    }
    break;
}
?>

Idd een stukje langer. |:(

  • radial
  • Registratie: Augustus 2000
  • Laatst online: 17-09 19:16

radial

Watch out

zoiets heb ik ook werkt wel goed
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/perl --

use CGI::Carp qw(fatalsToBrowser);
use LWP::UserAgent;
use HTTP::Cookies;

#Change the two image locations to the path on your own webserver#

$live = 'http://xxx.xxx.xxx.xxx/img/live.gif';
$dead = 'http://xxx.xxx.xxx.xxx/img/dead.gif';

#Below is the list of sites that are allowed to call the server status script#
#Leave 'allowedsites blank' if you want anyone to be able to call your script#

@allowedsites = ('');

#DO NOT CHANGE BELOW THIS LINE#

#Check that the call to the script is valid#

local($securitycheck) = 0;
  
if ($ENV{'HTTP_REFERER'}) {
    foreach $allowedsites (@allowedsites) {
    if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$allowedsites|i) {
      $securitycheck = 1;
      last; }
}
}
else {$securitycheck = 1;}

if ($securitycheck != 1) { print "Location: $dead\n\n"; }

#Create user agent and send it out#

$ua = new LWP::UserAgent;
$ua->agent("Natbyte/v1.01");
$ua->cookie_jar( HTTP::Cookies->new( file => "cookies.log", autosave=> 1 ));
$ua->timeout(25);
$ua->max_size(6000);
$request = new HTTP::Request('GET', $ENV{'QUERY_STRING'});
$result = $ua->request($request);

if ($result->is_success) {$website = $result->content;}

@website = split(/\n/,$website);


foreach $line (@website) {
if ($line =~ /html|body|font/i) {$content = "true";}
}


if ($content eq "true") {
  print "Location: $live\n\n";
  exit;
}

else {
  print "Location: $dead\n\n";
  exit;
}

resultaat: Afbeeldingslocatie: http://www.web-shocks.com/cgi-bin/serverstatus.cgi?http://webshocks.cjb.net/

20xSF170s - ozo


  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Zo... dies lang! ;)
Pagina: 1