2009-02-27 9 views
0

Mon rêve est d'interroger le paramètre de carte réseau sur WIN en utilisant python. Ce dont j'ai besoin, c'est d'interroger si la carte réseau est en full duplex et si elle est définie sur 1000Mb full. La classe WMI nommée Win32_NetworkAdapterConfiguration ne fournit pas ces informations. Une alternative de ligne de commande cmd peut également être intéressante (via l'appel de python).Python - paramètre d'interface réseau de requête

Thnx

+0

J'ai supprimé le tag Python pour que les utilisateurs Windows qui ignorent les questions Python puissent le voir. Vous devriez aussi éditer le titre de la question pour supprimer Python. –

Répondre

1

Ceci est vraiment pas une question de python. Tout ce que vous pouvez faire avec le win32api, vous pouvez le faire via Python, donc la question ici est à propos de l'API Windows et cela ne fait aucune différence que vous les invoquez depuis Python. Demander sans balise Python pourrait obtenir une meilleure réponse, en fait, parce que les gens regarderont qui savent comment le faire dans une autre langue, qui utiliserait la même API.

0

Oui! Ce n'est vraiment pas une question python. Quoi qu'il en soit prendre un coup d'oeil: List Network Adapter Configuration Properties

et les sourcils vers le bas dans le python @ scripts Microsoft repository helpfull peut-être pour votre problème.

Vous pouvez aussi trouver en python utile:

>>> import os 
>>> f= os.popen('<type your dos command>') 
>>> s = f.read() 
>>> print s 
3

Comme @ironfroggy dit, ce n'est pas spécifique à Python, mais une question générale de Windows.

Lorsque nous voulions programmer les paramètres de vitesse et de duplex sur les cartes réseau, c'était très difficile. En fin de compte nous avons eu recours à l'errance à travers le registre, qui a une structure différente en fonction du fournisseur de votre carte réseau.

Il va quelque chose comme ceci; Toutes nos excuses pour toute erreur:

  1. Recherchez HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network et recherchez les GUID contenant les données «Adaptateurs réseau». Appelez cela <GUID1>.
  2. Sous la clé <GUID1> se trouve un autre GUID pour chaque carte réseau. Appelez l'un d'eux <GUID2>.
  3. Passez à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<GUID1>. Itérer par ses clés (elles ressemblent à 0000, 0001, 0002, etc.) jusqu'à ce que vous en trouviez une qui a la valeur NetCfgInstanceId égale à <GUID2>.
  4. Ci-dessous, recherchez une sous-clé dépendante du fournisseur de la carte réseau. Certains nous avons défini sont:
    • Ndi \ Params
    • Ndi \ savedParams
    • BRCMndi \ params
  5. là-dessous, itérer les touches jusqu'à ce que vous trouviez un avec une valeur appelée ParamDesc dont les données contient les mots "speed" et "duplex". Rappelez-vous le nom de la clé et l'appelez <SpeedDuplexParamName>.
  6. Sous <SpeedDuplexParamName> il y a une clé enum, qui correspond aux descriptions des numéros comme « Détection automatique » et « 100 Mb Full ».
  7. Remontons quelques niveaux à l'endroit où vous avez trouvé NetCfgInstanceId. Près de là, vous pouvez voir la valeur actuelle sous forme d'énumération. Pour un exemple, le nom de la valeur était RequestedMediaType et la valeur était 6.
  8. Recherchez la valeur d'énumération pour trouver la vitesse et le paramètre duplex.

Je vois @ DrFalk3n a lié à un article de Microsoft qui pourrait dire la même chose, mais je vais laisser ceci ici au cas où il est utile.

Questions connexes