Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
savoir si on me ping
Auteur Message
Répondre en citant
Message savoir si on me ping 
salut en fait tout est dans le titre
c'est pour savoir si c'est possible de faire un script en batch qui détecte si mon ordie se fait ping et si oui qui donne dans une variable l'adresse ip (lan je précise) de l'ordie qui le ping
à quoi ça sert ?
l'ordie 1 a un programme qui tourne en tache de fond qui consiste à activer un autre programme uniquement quand l'ordie 2 le ping
c'est possible a votre avis ?
en tout cas moi je trouve pas




______________________________________________________
PLUS FORT QUE TOI
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message savoir si on me ping 
Salut,
ce que moi j'aurais fait à ta place serait de tester le contenu (ou même l’existence) d'un fichier temporaire écrit par l'autre ordi sur le réseau ou sur un serveur web.
Le problème du ping après, admettons que tu réussisses, si quelqu'un d'autre te ping ça va te démarrer le programme Laughing




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message savoir si on me ping 
salut merci de ta réponse
Citation:
tester le contenu (ou même l’existence) d'un fichier temporaire écrit par l'autre ordi sur le réseau ou sur un serveur web.

pourquoi pas, mais comment faire ?
Citation:
Le problème du ping après, admettons que tu réussisses, si quelqu'un d'autre te ping ça va te démarrer le programme Laughing

c'est pas un problème, (c'est de ma faut j'ai simplifié par pure flemme) en fait l'ordie 1 ne sait pas à l'avance l'ip de l'ordie 2, ça pourra être n'importe quel ordie, il y aura une autre vérification pour savoir si c'est une erreur ou pas. (ce qui élimine la solution du serveur web je pense).
le ping reste vraiment la meilleur solution pour ce que j'ai en tête même si c'est surement pas possible




______________________________________________________
PLUS FORT QUE TOI
Répondre en citant
Message savoir si on me ping 
Le ping est loin d'être la meilleur méthode, pour information, l'un des pair réseau qui risque de poser problème sera le routeur. Pourquoi ? Tout simplement car il va effectuer un certain nombre de ping sur les PC de son réseau (pour notifier une déconnexion et donc la gérer).
Sinon, tu peux voir avec un packet sniffer et y regarder les requêtes ICMP correspondant aux pings.
Sinon, il existe une bien meilleure méthode, il s'agit d'utiliser un socket en mode écoute sur le PC 1, puis s'y connecter avec le PC 2.

En batch, cela va nécessiter une commande externe (une commande pouvant interagir avec le réseau/sockets, ou encore faire un serveur web).

Comme commande externe, il y en a deux plus ou moins stables (qui ont le même nom, mais pas le même fonctionnement) :
- darkbox socket qui est le replaçant futur mais encore en développement de httpBat SockeT

- httpBat SockeT (Version venant de httpBat, topic du forum (téléchargement down))
    Version originale pour le projet httpBat (actuellement inactif).
    Le code source d'httpBat.bat reste la référence savoir comment marche la commande.





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message savoir si on me ping 
salut merci de t'a réponse mais l'ordie 1 ne doit pas ouvrir de socket, il faut que ce soit lui qui se connecte à l'ordie 2 quand l'ordie 2 lui aura demander (c'est important)
moi pour gérer le réseau j'utilise netcat c'est pas mal, j'ai encore jamais utilisé darkbox Mr. Green
du coup la solution du serveur web sur l'ordie n'est pas possible mais je vais regarder pour les packet sniffer mais ça vas me rajouter encore un autre truc externe et je préfère utiliser le moins possible les commandes non originales




______________________________________________________
PLUS FORT QUE TOI
Répondre en citant
Message savoir si on me ping 
Salut,
thyma2 a écrit:
salut merci de ta réponse
Citation:
tester le contenu (ou même l’existence) d'un fichier temporaire écrit par l'autre ordi sur le réseau ou sur un serveur web.

pourquoi pas, mais comment faire ?


Pour un réseau, ça va vraiment dépendre de la configuration du réseau en question, il s'agirait de trouver le moyen d'écrire un fichier temporaire sur le disque-dur commun au réseau, mais je suis loin d'être un spécialiste là dessus.
La solution la plus simple (en tout cas comment moi j'aurais fait à ta place) serait de faire un php de ce genre :

(testé et ça fonctionne très bien, tu peux tester je laisse le fichier php sur mon serveur pour l'instant)

Fichier ping.php à mettre sur un serveur web
Code:
<?php
// définit un mot de passe utilisable pour changer l'existence du fichier temporaire
$pass = "123";

// nom du fichier temporaire à utiliser
$file = "file.temp";

// requête valide que le batch (ou mieux, un VBS) va exécuter : http://example.com/ping.php?a=123
if ($_GET["a"] == $pass) {
   
    // si le fichier temporaire existe, on le supprime, sinon on le crée
    if (file_exists($file)) {
        unlink($file);
        echo "deleted";
    } else {
        file_put_contents($file, "\r\n");
        echo "created";
    }
    exit;
}

// si la requête ne contient pas le bon mdp, alors on affiche juste si le fichier existe ou non
if (file_exists($file)) {
    echo "true";
} else echo "false";

exit;
?>


Fichier .vbs qui affiche si le fichier temporaire existe ou non (lancé en boucle par l'ordi qui teste en boucle si une requête est faite
Pense à changer l'URL affichée, là j'ai mis l'url de mon serveur pour que tu vois que ça fonctionne Exclamation Exclamation
Code:
'objets
set ws = CreateObject("WScript.Shell")
set xmlhttp = CreateObject("Microsoft.XmlHttp")
on error resume next

' Lien à utiliser
lien="http://data.hugoland.fr/ping.php"

' Envoie une requête
xmlhttp.open "GET", lien, false
xmlhttp.send ""
if xmlhttp.responseText = "false" then
    msgbox "n'existe pas"
else
    msgbox "existe"
end if



Fichier .vbs qui change l'état d'existence du fichier temporaire (exécuté premièrement par l'ordi qui envoie le ping (fait créer le fic. temporaire) puis par l'ordi qui tourne en boucle (dès que le message est reçu,
il ping à nouveau pour demander la suppression du fic. temp.))

Pense à changer l'URL affichée, là j'ai mis l'url de mon serveur pour que tu vois que ça fonctionne Exclamation Exclamation
Code:
set ws = CreateObject("WScript.Shell")
set xmlhttp = CreateObject("Microsoft.XmlHttp")
on error resume next

' Lien à utiliser
lien="http://data.hugoland.fr/ping.php?a=123"

' Envoie une requête
xmlhttp.open "GET", lien, false
xmlhttp.send ""
msgbox "la requête de changement d'état a été envoyée, vous pouvez tester avec l'autre vbs"



Avec ces outils tu peux gérer comme tu veux tes batchs, il faudra juste que tu fasses en sorte que le vbs d'affichage de l'état imprime l'état dans un fichier que ton batch peut lire au lieu d'afficher un message à l'utilisateur mais c'est pas trop compliqué.

P.S. : Si tu n'as pas de serveur web je te conseille l'offre gratuite d'AlwaysData comme ça tu peux aussi te créer un site internet si t'as envie et si c'est pas déjà fait Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message savoir si on me ping 
salut dzl pour le temps de réponse j'ai beaucoup de taf en ce moment ..
ta solution (je suis pas sur d'avoir tout compris) n'est pas bonne puisqu'il faut que l'ordie 1 connaisse l'ip (ou url) de l'ordie 2
mais j'ai trouvé une solution qui fonctionne avec le ping (ou pas forcément même), elle a un seul défaut : elle a besoin des droits admin mais c'est pas trop grave au pire
l'ordie 1 execute en boucle ceci

arp -d (c'est cette commande qui nécessite admin)
ping localhost -n 10 > nul (ça c'est juste pour faire un temps de pause rien à voir avec le ping pour l'instant)
for /f %%a in ('arp -a') do nc -n %%a 80>test.txt (le nc c'est une commande externe pour se co il y aura la 2ème vérification avec)

du coup l'ordie 2 a juste à ouvrir son port 80
et à ping le pc a1 et a attendre 10 secondes
voila

sinon des idées pour enlever les droits admin pour arp -d ? car ce script devra s’exécuter un grand nombre de fois




______________________________________________________
PLUS FORT QUE TOI
Répondre en citant
Message savoir si on me ping 
Salut,
il y a beaucoup de codes sur ce forum qui forcent cmd à se mettre en admin, voici un exemple dont tu peux t'inspirer http://batch.xoo.it/t5341-Mode-administateur-dans-un-bat.htm?q=administrate…




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message savoir si on me ping 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch