Bonjour,

Je commence en Python et j'essaie de faire un programme permettant de pinger un poste ou une imprimante sur le réseau. Le code fonctionne sous Mac avec python 3.6.1 et renvoie bien ok pour le ping

Par contre avec python 3.6.4 sous Windows 7 32bits ou Windows 10 64bits, le programme renvoie toujours no response, alors qu'avec le terminal cmd le poste ou le site par exemple www.google.com répond bien. Je ne comprends pas pourquoi et à priori il n'y à pas de bug dans le script.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
from platform import system as system_name # Returns the system/OS name
import subprocess      # Execute a shell command
import os 
 
def ping(host):
    """
    Returns True if host (str) responds to a ping request.
    Remember that some hosts may not respond to a ping request even if the host name is valid.
    """
 
    # Ping parameters as function of OS
    parameters = "-n 1" if system_name().lower()=="windows" else "-c 1"
 
    # Pinging
    pingResult = subprocess.call(["ping", parameters, host], stdout=open(os.devnull, 'wb'), stderr=open(os.devnull, 'wb'))
 
    if pingResult == 0:
      print("Address {} OK".format(host))
    else:
      print("Address {} no response".format(host))
 
def main():
    imprimante = input("Nom de l'imprimante : ")
    machine = input ("Ordinateur : ")
    ping(machine)
 
 
main()

Merci d'avance pour vos lumières.