Portless easy ping

Door VenQWish , 21 jaar geleden, 8.780x bekeken

Ik zocht een makkelijke methode om een IP te pingen, en de methode geeft true terug als de IP pingt, en false als het niet pingt natuurlijk. Het gebeurt dmv een system ping, deze output wordt dan geparst om te zien of het aantal gereceivede pakketten 1 is. Het wordt slechts met 1 pakket gedaan, het is dan ook om dit script zo basic mogelijk te houden.

/*Misschien is er een methode om dit vanuit php te doen, want deze methode van pingen zal waarschijnlijk op de meeste servers niet werken. Maar degene die ik vond die pingen vanuit php werkten enkel met een poort, en daar moest altijd een socket voor aangemaakt worden?*/

Gesponsorde koppelingen

PHP script bestanden

  1. portless-easy-ping

 

Er zijn 11 reacties op 'Portless easy ping'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Marvin S
Marvin S
21 jaar geleden
 
0 +1 -0 -1
klein maar fijn haha


21 jaar geleden
 
0 +1 -0 -1
Ik heb nederlandse server ;) dan is geen Packets maar Pakketten

Pingen naar gl.nu.nl [62.69.179.208] met 32 byte gegevens: Antwoord van 62.69.179.208: bytes=32 tijd=12 ms TTL=53 Ping-statistieken voor 62.69.179.208: Pakketten: verzonden = 1, ontvangen = 1, verloren = 0 (0% verlies).De gemiddelde tijd voor het uitvoeren van ‚‚n bewerking in milliseconden: Minimum = 12ms, Maximum = 12ms, Gemiddelde = 12ms

ik heb er trouwens dit van gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(strpos($out, '(0% verlies)'))
            return true;
        return false;
 ?>


Mijn versie 'verbeterde':
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
    $ip
= !empty($_GET['ip']) ? $_GET['ip'] : 'none'; // Kijk of ?ip bestaad; zo niet dan word het ip none
    $timeout = 200;
    
    echo status($ip,$timeout);
    
    function
status($ip,$timeout) {
        
        $num='(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])';

        if (!preg_match("/^$num\\.$num\\.$num\\.$num$/", $ip,$match)) // Kijk of het ip wel een IP-adres is; we willen geen format's etc ;)
            exit('Geen geldig IP-adres');
        
        ob_start();
        system('ping '.$ip." -n 4 -w ".$timeout."ms");
        $out = ob_get_contents();
        ob_end_clean();
        
        if(strpos($out, '(0% verlies)'))
            return 'De server ('.$ip.') is volledig te berijken, en werkt goed.';
        elseif(strpos($out, '(25% verlies)'))
            return 'De server ('.$ip.') is NIET volledig te berijken, maar werkt goed.';
        elseif(strpos($out, '(50% verlies)'))
            return 'De server ('.$ip.') is NIET volledig te berijken, waarschijnlijk is de server te druk of slecht te berijken.';
           elseif(strpos($out, '(75% verlies)'))
               return 'De server ('.$ip.') was ZEER SLECHT te berijken, de server werkt niet goed.';
        return 'De server ('.$ip.') was NIET te berijken! De server staat uit / bestaat niet /  werkt niet goed / de verbinding is slecht / de server staat te verweg en deed er te lang over om te antwoorden of een firewall blokkeerd de toegang.';
    }

?>


Misschien nog een anti fload?


21 jaar geleden
 
0 +1 -0 -1
Jup en de server bestaat niet. ;-)

En ach jah, het scriptje, is prima.
Joeri
Joeri
21 jaar geleden
 
0 +1 -0 -1
Mooi scriptje en werkt wel op andere servers hoor, die sockets is eenvoudig op te lossen.
Eeenvoorbeeld zou niet onaardig zijn;
Op mijn server werkt het echter op elk ip volgende melding

De server (62.69.179.208) was NIET te berijken! De server staat uit / bestaad niet / werkt niet goed / de verbinding is slecht / de server staat te verweg en deed er te lang over om te antwoorden of een firewall blokkerd de toegang.

http://www.jb-web.net/scripts/php/IPcheck/


Grtz.
Dutch Caffeine
Dutch Caffeine
21 jaar geleden
 
0 +1 -0 -1
Leuk script :P Maar ik heb een foutje ontdekt:

blokkerd Moet zijn blokkeerd :D


21 jaar geleden
 
0 +1 -0 -1
@Joeri
als ik bij jou en bij mij het zelfde IP invul is hij bij jou niet online en mij wel; ik denk dat je hosting bedrijf het niet toestaat om zulke commando's uit te voeren;

Om te kijken wat de reactie is; haal je regel 17: ob_end_clean(); weg dan laat hij namelijk het resultaat zien.
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
ping: invalid option -- w
usage: ping [-LRdfnqrv] [-c count] [-i wait] [-l preload]
[-p pattern] [-s packetsize] [-t ttl] [-I interface address] host
K i p
K i p
21 jaar geleden
 
0 +1 -0 -1
Quote:
Leuk script :P Maar ik heb een foutje ontdekt:

blokkerd Moet zijn blokkeerd :D
blokkerd moet zijn blokkeert ;-)
Rik S
Rik S
21 jaar geleden
 
0 +1 -0 -1
@boris

volgens mij staat de r van blokkeren niet in 't kofschip of wat het dan ook is dus dan komt er ook geen t maar toch die d
K i p
K i p
21 jaar geleden
 
0 +1 -0 -1
een firewall smurft
->
een firewall blokkeert
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Dirk Kok
Dirk Kok
21 jaar geleden
 
0 +1 -0 -1
@Rik
het is geen voltooid deelwoord ;)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. portless-easy-ping

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.