Hello,
J'arrive pas à savoir comment détecter que l'on est connecté à un réseau LAN
ou non (sans internet), de manière la plus portable possible. Détecter une
connexion active c'est facile, savoir si le réseau est actif / détecter que
"le cable a été débraché", heu...
Il me semble que c'est faisable en WMI. Si en Win32 pur c'est possible c'est
encore mieux.
Merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
Aurélien REGAT-BARREL a écrit:
J'arrive pas à savoir comment détecter que l'on est connecté à un réseau LAN ou non (sans internet), de manière la plus portable possible. Détecter une connexion active c'est facile, savoir si le réseau est actif / détecter que "le cable a été débraché", heu... Il me semble que c'est faisable en WMI. Si en Win32 pur c'est possible c'est encore mieux.
J'arrive pas à savoir comment détecter que l'on est connecté à un réseau LAN
ou non (sans internet), de manière la plus portable possible. Détecter une
connexion active c'est facile, savoir si le réseau est actif / détecter que
"le cable a été débraché", heu...
Il me semble que c'est faisable en WMI. Si en Win32 pur c'est possible c'est
encore mieux.
J'arrive pas à savoir comment détecter que l'on est connecté à un réseau LAN ou non (sans internet), de manière la plus portable possible. Détecter une connexion active c'est facile, savoir si le réseau est actif / détecter que "le cable a été débraché", heu... Il me semble que c'est faisable en WMI. Si en Win32 pur c'est possible c'est encore mieux.
Apparement, il faut attaquer la couche NDIS pour avoir cette info. MSNdis_MediaConnectStatus semble être une classe non documentée, dispo sou Win2K seulement. J'ai trouvé cet intéressant article : http://www.ndis.com/faq/QA01050301/ Y aurait aussi OID_GEN_MEDIA_CONNECT_STATUS, du DDK. J'ai trouvé ça : http://msdn.microsoft.com/library/en-us/network/hh/network/205mpinfo_29e84eb1-0ff4-48b0-8e24-b6395256d6ad.xml.asp Le précédent article explique comment s'en servir, mais dit que sous Win9x/Me ça se complique (Q322363). Je suis aussi tombé sur un thread de discution à ce sujet, et il est mentionné Win32_NetworkAdapter.NetConnectionStatus : http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_networkadapter.asp Je n'y connais pas grand chose en WMI, mais j'aurais tendance à préférer les classes commençant par Win32_.
J'ai déjà testé IsNetworkAlive, mais ça ne permet que de détecter une carte réseau LAN active, et non pas un connexion effective à un reseau LAN (renvoie NETWORK_ALIVE_LAN alors que le cable réseau est débranché).
Apparement, il faut attaquer la couche NDIS pour avoir cette info.
MSNdis_MediaConnectStatus semble être une classe non documentée, dispo sou
Win2K seulement. J'ai trouvé cet intéressant article :
http://www.ndis.com/faq/QA01050301/
Y aurait aussi OID_GEN_MEDIA_CONNECT_STATUS, du DDK. J'ai trouvé ça :
http://msdn.microsoft.com/library/en-us/network/hh/network/205mpinfo_29e84eb1-0ff4-48b0-8e24-b6395256d6ad.xml.asp
Le précédent article explique comment s'en servir, mais dit que sous
Win9x/Me ça se complique (Q322363).
Je suis aussi tombé sur un thread de discution à ce sujet, et il est
mentionné Win32_NetworkAdapter.NetConnectionStatus :
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_networkadapter.asp
Je n'y connais pas grand chose en WMI, mais j'aurais tendance à préférer les
classes commençant par Win32_.
J'ai déjà testé IsNetworkAlive, mais ça ne permet que de détecter une carte
réseau LAN active, et non pas un connexion effective à un reseau LAN
(renvoie NETWORK_ALIVE_LAN alors que le cable réseau est débranché).
Apparement, il faut attaquer la couche NDIS pour avoir cette info. MSNdis_MediaConnectStatus semble être une classe non documentée, dispo sou Win2K seulement. J'ai trouvé cet intéressant article : http://www.ndis.com/faq/QA01050301/ Y aurait aussi OID_GEN_MEDIA_CONNECT_STATUS, du DDK. J'ai trouvé ça : http://msdn.microsoft.com/library/en-us/network/hh/network/205mpinfo_29e84eb1-0ff4-48b0-8e24-b6395256d6ad.xml.asp Le précédent article explique comment s'en servir, mais dit que sous Win9x/Me ça se complique (Q322363). Je suis aussi tombé sur un thread de discution à ce sujet, et il est mentionné Win32_NetworkAdapter.NetConnectionStatus : http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_networkadapter.asp Je n'y connais pas grand chose en WMI, mais j'aurais tendance à préférer les classes commençant par Win32_.
J'ai déjà testé IsNetworkAlive, mais ça ne permet que de détecter une carte réseau LAN active, et non pas un connexion effective à un reseau LAN (renvoie NETWORK_ALIVE_LAN alors que le cable réseau est débranché).
-- Aurélien REGAT-BARREL
Aurélien REGAT-BARREL
> cf le sample MACADDR II mais marche pas sous 98 et risque de ne pas
marcher
pour les versions suivantes de Windows.
Lol, j'ai cherché 15 min dans le SDk, en vain. http://www.pcausa.com/Utilities/macaddr2.htm
Après un coup d'oeil, ça utilise l'IOCTL IOCTL_NDIS_QUERY_GLOBAL_STATS. Moyennant quelques typedef et tout et tout, on doit pouvoir créer une petite routine qui se passe du DDK. Je garde cette option sous la main, mais vu que WMI semble plus portable, je vais d'abord y jeter un oeil. Merci.
Normalement y'a un champs d'une structure d'iphlpapi qui permet d'avoir cette info mais j'ai ouï dire qu'elle ne marche pas (ou mal) sous 9X.
C'est exactement le genre de solution que je voudrais...
-- Aurélien REGAT-BARREL
> cf le sample MACADDR II mais marche pas sous 98 et risque de ne pas
marcher
pour les versions suivantes de Windows.
Lol, j'ai cherché 15 min dans le SDk, en vain.
http://www.pcausa.com/Utilities/macaddr2.htm
Après un coup d'oeil, ça utilise l'IOCTL IOCTL_NDIS_QUERY_GLOBAL_STATS.
Moyennant quelques typedef et tout et tout, on doit pouvoir créer une petite
routine qui se passe du DDK.
Je garde cette option sous la main, mais vu que WMI semble plus portable, je
vais d'abord y jeter un oeil.
Merci.
Normalement y'a un champs d'une structure d'iphlpapi qui permet d'avoir
cette info mais j'ai ouï dire qu'elle ne marche pas (ou mal) sous 9X.
C'est exactement le genre de solution que je voudrais...
> cf le sample MACADDR II mais marche pas sous 98 et risque de ne pas
marcher
pour les versions suivantes de Windows.
Lol, j'ai cherché 15 min dans le SDk, en vain. http://www.pcausa.com/Utilities/macaddr2.htm
Après un coup d'oeil, ça utilise l'IOCTL IOCTL_NDIS_QUERY_GLOBAL_STATS. Moyennant quelques typedef et tout et tout, on doit pouvoir créer une petite routine qui se passe du DDK. Je garde cette option sous la main, mais vu que WMI semble plus portable, je vais d'abord y jeter un oeil. Merci.
Normalement y'a un champs d'une structure d'iphlpapi qui permet d'avoir cette info mais j'ai ouï dire qu'elle ne marche pas (ou mal) sous 9X.
C'est exactement le genre de solution que je voudrais...
-- Aurélien REGAT-BARREL
Thierry
Bonjour,
Aurélien REGAT-BARREL a écrit :
tout, on doit pouvoir créer une petite routine qui se passe du DDK.
Pas besoin du DDK : CreateFile / DeviceIoControl suffisent...
Je garde cette option sous la main, mais vu que WMI semble plus portable, je vais d'abord y jeter un oeil.
Le pb est que WMI n'est pas installé en standard sur un 9X.
-- « Always look at the bright side of the life... »
Bonjour,
Aurélien REGAT-BARREL a écrit :
tout, on doit pouvoir créer une petite routine qui se passe du DDK.
Pas besoin du DDK : CreateFile / DeviceIoControl suffisent...
Je garde cette option sous la main, mais vu que WMI semble plus
portable, je vais d'abord y jeter un oeil.
Le pb est que WMI n'est pas installé en standard sur un 9X.
--
« Always look at the bright side of the life... »
Apparement, il faut attaquer la couche NDIS pour avoir cette info. MSNdis_MediaConnectStatus semble être une classe non documentée, dispo sou Win2K seulement. J'ai trouvé cet intéressant article : http://www.ndis.com/faq/QA01050301/ Y aurait aussi OID_GEN_MEDIA_CONNECT_STATUS, du DDK. J'ai trouvé ça : http://msdn.microsoft.com/library/en-us/network/hh/network/205mpinfo_29e84eb1-0ff4-48b0-8e24-b6395256d6ad.xml.asp Le précédent article explique comment s'en servir, mais dit que sous Win9x/Me ça se complique (Q322363). Je suis aussi tombé sur un thread de discution à ce sujet, et il est mentionné Win32_NetworkAdapter.NetConnectionStatus : http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_networkadapter.asp Je n'y connais pas grand chose en WMI, mais j'aurais tendance à préférer les classes commençant par Win32_.
J'ai déjà testé IsNetworkAlive, mais ça ne permet que de détecter une carte réseau LAN active, et non pas un connexion effective à un reseau LAN (renvoie NETWORK_ALIVE_LAN alors que le cable réseau est débranché).
Apparement, il faut attaquer la couche NDIS pour avoir cette info.
MSNdis_MediaConnectStatus semble être une classe non documentée, dispo sou
Win2K seulement. J'ai trouvé cet intéressant article :
http://www.ndis.com/faq/QA01050301/
Y aurait aussi OID_GEN_MEDIA_CONNECT_STATUS, du DDK. J'ai trouvé ça :
http://msdn.microsoft.com/library/en-us/network/hh/network/205mpinfo_29e84eb1-0ff4-48b0-8e24-b6395256d6ad.xml.asp
Le précédent article explique comment s'en servir, mais dit que sous
Win9x/Me ça se complique (Q322363).
Je suis aussi tombé sur un thread de discution à ce sujet, et il est
mentionné Win32_NetworkAdapter.NetConnectionStatus :
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_networkadapter.asp
Je n'y connais pas grand chose en WMI, mais j'aurais tendance à préférer les
classes commençant par Win32_.
J'ai déjà testé IsNetworkAlive, mais ça ne permet que de détecter une carte
réseau LAN active, et non pas un connexion effective à un reseau LAN
(renvoie NETWORK_ALIVE_LAN alors que le cable réseau est débranché).
Apparement, il faut attaquer la couche NDIS pour avoir cette info. MSNdis_MediaConnectStatus semble être une classe non documentée, dispo sou Win2K seulement. J'ai trouvé cet intéressant article : http://www.ndis.com/faq/QA01050301/ Y aurait aussi OID_GEN_MEDIA_CONNECT_STATUS, du DDK. J'ai trouvé ça : http://msdn.microsoft.com/library/en-us/network/hh/network/205mpinfo_29e84eb1-0ff4-48b0-8e24-b6395256d6ad.xml.asp Le précédent article explique comment s'en servir, mais dit que sous Win9x/Me ça se complique (Q322363). Je suis aussi tombé sur un thread de discution à ce sujet, et il est mentionné Win32_NetworkAdapter.NetConnectionStatus : http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_networkadapter.asp Je n'y connais pas grand chose en WMI, mais j'aurais tendance à préférer les classes commençant par Win32_.
J'ai déjà testé IsNetworkAlive, mais ça ne permet que de détecter une carte réseau LAN active, et non pas un connexion effective à un reseau LAN (renvoie NETWORK_ALIVE_LAN alors que le cable réseau est débranché).
NetConnectionStatus => XP
Aurélien REGAT-BARREL
> NetConnectionStatus => XP
Ah oui, je me disais bien qu'il y avait un truc. Bon ben je vais plutôt me tourner vers la solution de Thierry alors (exemple de pcausa). Merci à vous.
-- Aurélien REGAT-BARREL
> NetConnectionStatus => XP
Ah oui, je me disais bien qu'il y avait un truc.
Bon ben je vais plutôt me tourner vers la solution de Thierry alors (exemple
de pcausa).
Merci à vous.
Ah oui, je me disais bien qu'il y avait un truc. Bon ben je vais plutôt me tourner vers la solution de Thierry alors (exemple de pcausa). Merci à vous.