Ping en continu en PHP

Fermé
mrtbgau - 16 juin 2022 à 10:12
jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024 - 16 juin 2022 à 21:22
Bonjour,
Je suis un projet d'outil de multiping et je souhaite pinger une adresse ip en continu pour avoir son statut(connecté ou non) et le temps de réponse.

Pour l'instant, j'ai ça:


function getLatence($ip){
$ping = exec("ping -n 1 $ip", $output, $status);
return ($status == 0) ? $ping : "Pas de réponse de ".$ip;


function getStatus($ip){
$ping = exec("ping -n 1 $ip", $output, $status);
return ($status == 0) ? "Connecté" : "Non connecté";


if(isset($_POST['btn-analyser'])){ //Si l'utilisateur clique sur le bouton analyser
try{
if(isset($_POST['saisieIP'])){ //Si une ip est entrée
$ip = $_POST['saisieIP'];
$statut = getStatus($ip);
$latence = getLatence($ip);

$insert = ("INSERT INTO `enregistrement`(`adrEnregistrement`, `staEnregistrement`, `tpsEnregistrement`)
VALUES (:ip, :statut, :latence)");
$sqlInsert = BDDConnexionPDO()->prepare($insert);

$sqlInsert->bindParam(':ip', $ip);
$sqlInsert->bindParam(':statut', $statut);
$sqlInsert->bindParam(':latence', $latence);
$sqlInsert->execute();

}
}
catch(PDOException $e){
echo 'Erreur: ' .$e->getMessage();
}
}





Configuration: Windows / Edge 102.0.1245.41

2 réponses

yg_be Messages postés 22916 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juillet 2024 1 481
16 juin 2022 à 10:19
bonjour, ton code fonctionne bien?
0
Oui, très bien. Mais ce que je veux c'est pinger une adresse tout le temps et avoir le statut et le temps de réponse en temps réel
0
yg_be Messages postés 22916 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juillet 2024 1 481 > mrtbgau
16 juin 2022 à 10:37
As-tu envisagé de faire une boucle dans ton code?
0
mrtbgau > yg_be Messages postés 22916 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juillet 2024
16 juin 2022 à 10:46
Oui mais la page s'actualise indéfiniment

Voici ce que j'ai essayé:


function getStatus($ip){
while(true){
$ping = exec("ping -n 1 $ip", $output, $status);
$statut = ($status == 0) ? "Connecté" : "Non connecté";
echo $statut;
}
}

function getLatence($ip){
while(true){
$ping = exec("ping -n 1 $ip", $output, $status);
$latence = ($status == 0) ? $ping : "Pas de réponse de ".$ip;
echo $latence;
}
}

.
0
yg_be Messages postés 22916 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juillet 2024 1 481 > mrtbgau
16 juin 2022 à 11:18
Tu n'as pas expliqué ce que tu souhaitais obtenir précisément.
0
mrtbgau > yg_be Messages postés 22916 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 juillet 2024
16 juin 2022 à 11:27
Je veux pinger une adresse indéfiniment et actualiser le statut et la latence en fonction des réponse.
Ce statut et cette latence s'insert dans une base de données et je récupére ces données pour l'afficher dans un tableau de résultat
0
jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024 4 680
16 juin 2022 à 21:22
Bonjour,

1 - ta boucle ne doit pas se trouver dans ta fonction de ping .. mais dans ton programme principale
2 - Les pages php ont un temps d'exécution "max" et tu risques donc de tomber en timout ..

3- Pour faire ce que tu souhaites, un script JS (faisant appel en AJAX à ton script php) serait préférable.
Ainsi, tu pourras demander ( via code js..) à ta page, de relancer la vérification toutes les X secondes.

4 - Certains serveurs n'apprécient pas d'être pinguer en continue .. pensant être victime d'une attaque.. L'ip de ton serveur php risque donc d'être black listée...

0