Alerte si réseau non détecté

Résolu/Fermé
dopi - Modifié le 3 févr. 2022 à 14:51
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 4 févr. 2022 à 13:31
Bonjour,

Je suis en train de développer une petite application que j'aimerais sécuriser pour éviter que l'exécutable soit utilisable ailleurs que sur le réseau de l'entreprise.

J'ai pensé à mettre en place un bout de code qui ferait un ping d'un serveur uniquement accessible via VPN:

def myping(host):
    resp = ping(host)
    if resp == False:
        showinfo('Erreur', 'Erreur')
        return root.destroy()
    else:
        return True
print(myping("192.168.x.x"))


Ce code fonctionne uniquement si l'adresse IP que j'ai noté est impossible,
ex:
192.168.1.3000

Dans ce cas, le message d'alerte s'affiche bien et le programme est fermé.

Si l'IP saisie est valide mais pas forcément pingable (ex
192.168.1.1
) sur le réseau (donc potentiellement un accès non autorisé), le programme se lance quand même...

Je pense que je n'arrive pas à récupérer l'erreur et que par défaut, c'est lancé.
Ce que j'aimerai faire: "Si ping OK, alors on lance, sinon, si ping KO, alors on ferme le programme".

Auriez-vous une idée, un piste s'il vous plaît ?
Merci !

3 réponses

yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481
3 févr. 2022 à 12:03
bonjour,
ne manque-t-il pas un
import
dans ton code?
0
Oui j'ai cet import dans le code:
from ping3 import ping
0
yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481 > dopi
3 févr. 2022 à 14:43
Si j'étais à ta place, je commencerais par imprimer
resp
dans les différents cas, pour comprendre ce que retourne
ping
.
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
3 févr. 2022 à 14:54
Bonjour,

Essaye autant que possible de partager des exemples minimaux qui mettent en évidence le problème.

Si on se réfère à la documentation de ping3 tu peux contrôler si le retour de
ping
vaut
None
ou
False
. Tu peux aussi utiliser
verbose_ping
pour avoir des résultats plus complets.

En terme de sécurisation, ce n'est pas tant à l'application (et son développeur) qu'à l'administrateur de s'assurer quels requêtes réseaux sont autorisées ou non. Cela se configure typiquement au niveau du pare-feu (en particulier tu peux filtrer les paquets ICMP en fonction de leur destination).

Bonne chance
0
Bonjour,

Parfait avec la documentation de
ping3
, j'ai pu résoudre mon problème avec cette partie de code:

ping3.EXCEPTIONS = True
try:
    ping3.ping("192.168.1.1")
except ping3.errors.PingError:  .
    print("Ping HS")
    showinfo('Erreur 001', 'Erreur 001')
    root.destroy()


Si je déconnecte le réseau / ou coupe l'accès au ping vers l'adresse de destination, l'application m'affiche bien l'erreur.
Merci pour le coup de main :)
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
Modifié le 4 févr. 2022 à 13:31
Bonjour dopi,

Merci pour ton retour et pour le code partagé. Pense à bien utiliser les balises de code à l'avenir si tu as besoin de partager du code.

Bonne continuation
0