Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à
internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise,
...etc)
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
Patrick Philippot
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne vraiment dans tous les cas, contrairement à l'utilisation des APIs classiques qui ne donnent pas de résultats cohérents, est celle que je décris ici:
Ce code est facilement portable sous .Net. Notez que IPHLPAPI peut être installée sur les systèmes où elle n'est pas présente en natif.
Cordialement.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est
connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau
d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne
vraiment dans tous les cas, contrairement à l'utilisation des APIs
classiques qui ne donnent pas de résultats cohérents, est celle que je
décris ici:
Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne vraiment dans tous les cas, contrairement à l'utilisation des APIs classiques qui ne donnent pas de résultats cohérents, est celle que je décris ici:
Ce code est facilement portable sous .Net. Notez que IPHLPAPI peut être installée sur les systèmes où elle n'est pas présente en natif.
Cordialement.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Simon Mourier [SoftFluent]
Il faut dire qu'il n'y a pas vraiment de bonne réponse à la question de départ. Tout dépend de ce que l'on cherche vraiment à déterminer. On peut avoir un réseau sans être "connecté à Internet" :-)
L'API de base "officielle" Microsoft est InetIsOffline, qui est équivalente à InternetQueryOption avec INTERNET_OPTION_CONNECTED_STATE (Wininet.dll). Elle correspond à l'information que Internet Explorer affiche dans le menu Fichier / Travailler hors connexion. C'est une information pas pire qu'une autre :-)
Voici un code C# qui montre comment l'utiliser, je ne crois pas quelle déclenche l'autodial?
[DllImport("wininet.dll", SetLastError = true, EntryPoint = "InternetQueryOptionA")] private static extern bool InternetQueryOptionAInt32(IntPtr handle, int option, ref int int32Buffer, ref int bufferLength);
// plus compliqué mais plus d'infos public static bool IsOnline() { const int INTERNET_STATE_CONNECTED = 0x00000001; // connected state (mutually exclusive with disconnected) const int INTERNET_STATE_DISCONNECTED = 0x00000002; // disconnected from network const int INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010; // disconnected by user request const int INTERNET_STATE_IDLE = 0x00000100; // no network requests being made (by Wininet) const int INTERNET_STATE_BUSY = 0x00000200; // network requests being made (by Wininet) const int INTERNET_OPTION_CONNECTED_STATE = 50; int state = 0; int size = Marshal.SizeOf(state); if (!InternetQueryOptionAInt32(IntPtr.Zero, INTERNET_OPTION_CONNECTED_STATE, ref state, ref size)) throw new Win32Exception(Marshal.GetLastWin32Error()); return ((state & INTERNET_STATE_CONNECTED) != 0); }
// plus simple mais moins d'infos! public static bool IsOnline2() { return !InetIsOffline(); }
"Patrick Philippot" a écrit dans le message de news: OY9$
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne vraiment dans tous les cas, contrairement à l'utilisation des APIs classiques qui ne donnent pas de résultats cohérents, est celle que je décris ici:
Ce code est facilement portable sous .Net. Notez que IPHLPAPI peut être installée sur les systèmes où elle n'est pas présente en natif.
Cordialement.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Il faut dire qu'il n'y a pas vraiment de bonne réponse à la question de
départ. Tout dépend de ce que l'on cherche vraiment à déterminer. On peut
avoir un réseau sans être "connecté à Internet" :-)
L'API de base "officielle" Microsoft est InetIsOffline, qui est équivalente
à InternetQueryOption avec INTERNET_OPTION_CONNECTED_STATE (Wininet.dll).
Elle correspond à l'information que Internet Explorer affiche dans le menu
Fichier / Travailler hors connexion. C'est une information pas pire qu'une
autre :-)
Voici un code C# qui montre comment l'utiliser, je ne crois pas quelle
déclenche l'autodial?
[DllImport("wininet.dll", SetLastError = true, EntryPoint =
"InternetQueryOptionA")]
private static extern bool InternetQueryOptionAInt32(IntPtr handle, int
option, ref int int32Buffer, ref int bufferLength);
// plus compliqué mais plus d'infos
public static bool IsOnline()
{
const int INTERNET_STATE_CONNECTED = 0x00000001; // connected state
(mutually exclusive with disconnected)
const int INTERNET_STATE_DISCONNECTED = 0x00000002; // disconnected
from network
const int INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010; //
disconnected by user request
const int INTERNET_STATE_IDLE = 0x00000100; // no network requests
being made (by Wininet)
const int INTERNET_STATE_BUSY = 0x00000200; // network requests
being made (by Wininet)
const int INTERNET_OPTION_CONNECTED_STATE = 50;
int state = 0;
int size = Marshal.SizeOf(state);
if (!InternetQueryOptionAInt32(IntPtr.Zero,
INTERNET_OPTION_CONNECTED_STATE, ref state, ref size))
throw new Win32Exception(Marshal.GetLastWin32Error());
return ((state & INTERNET_STATE_CONNECTED) != 0);
}
// plus simple mais moins d'infos!
public static bool IsOnline2()
{
return !InetIsOffline();
}
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: OY9$POcSHHA.496@TK2MSFTNGP06.phx.gbl...
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est
connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau
d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne
vraiment dans tous les cas, contrairement à l'utilisation des APIs
classiques qui ne donnent pas de résultats cohérents, est celle que je
décris ici:
Il faut dire qu'il n'y a pas vraiment de bonne réponse à la question de départ. Tout dépend de ce que l'on cherche vraiment à déterminer. On peut avoir un réseau sans être "connecté à Internet" :-)
L'API de base "officielle" Microsoft est InetIsOffline, qui est équivalente à InternetQueryOption avec INTERNET_OPTION_CONNECTED_STATE (Wininet.dll). Elle correspond à l'information que Internet Explorer affiche dans le menu Fichier / Travailler hors connexion. C'est une information pas pire qu'une autre :-)
Voici un code C# qui montre comment l'utiliser, je ne crois pas quelle déclenche l'autodial?
[DllImport("wininet.dll", SetLastError = true, EntryPoint = "InternetQueryOptionA")] private static extern bool InternetQueryOptionAInt32(IntPtr handle, int option, ref int int32Buffer, ref int bufferLength);
// plus compliqué mais plus d'infos public static bool IsOnline() { const int INTERNET_STATE_CONNECTED = 0x00000001; // connected state (mutually exclusive with disconnected) const int INTERNET_STATE_DISCONNECTED = 0x00000002; // disconnected from network const int INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010; // disconnected by user request const int INTERNET_STATE_IDLE = 0x00000100; // no network requests being made (by Wininet) const int INTERNET_STATE_BUSY = 0x00000200; // network requests being made (by Wininet) const int INTERNET_OPTION_CONNECTED_STATE = 50; int state = 0; int size = Marshal.SizeOf(state); if (!InternetQueryOptionAInt32(IntPtr.Zero, INTERNET_OPTION_CONNECTED_STATE, ref state, ref size)) throw new Win32Exception(Marshal.GetLastWin32Error()); return ((state & INTERNET_STATE_CONNECTED) != 0); }
// plus simple mais moins d'infos! public static bool IsOnline2() { return !InetIsOffline(); }
"Patrick Philippot" a écrit dans le message de news: OY9$
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne vraiment dans tous les cas, contrairement à l'utilisation des APIs classiques qui ne donnent pas de résultats cohérents, est celle que je décris ici:
Ce code est facilement portable sous .Net. Notez que IPHLPAPI peut être installée sur les systèmes où elle n'est pas présente en natif.
Cordialement.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Gilles TOURREAU
Le Tue, 06 Feb 2007 10:25:38 +0100, Simon Mourier [SoftFluent] a écrit:
Il faut dire qu'il n'y a pas vraiment de bonne réponse à la question de départ. Tout dépend de ce que l'on cherche vraiment à déterminer. On peut avoir un réseau sans être "connecté à Internet" :-)
L'API de base "officielle" Microsoft est InetIsOffline, qui est équivalente à InternetQueryOption avec INTERNET_OPTION_CONNECTED_STATE (Wininet.dll). Elle correspond à l'information que Internet Explorer affiche dans le menu Fichier / Travailler hors connexion. C'est une information pas pire qu'une autre :-)
Voici un code C# qui montre comment l'utiliser, je ne crois pas quelle déclenche l'autodial?
[DllImport("wininet.dll", SetLastError = true, EntryPoint > "InternetQueryOptionA")] private static extern bool InternetQueryOptionAInt32(IntPtr handle, int option, ref int int32Buffer, ref int bufferLength);
// plus compliqué mais plus d'infos public static bool IsOnline() { const int INTERNET_STATE_CONNECTED = 0x00000001; // connected state (mutually exclusive with disconnected) const int INTERNET_STATE_DISCONNECTED = 0x00000002; // disconnected from network const int INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010; // disconnected by user request const int INTERNET_STATE_IDLE = 0x00000100; // no network requests being made (by Wininet) const int INTERNET_STATE_BUSY = 0x00000200; // network requests being made (by Wininet) const int INTERNET_OPTION_CONNECTED_STATE = 50; int state = 0; int size = Marshal.SizeOf(state); if (!InternetQueryOptionAInt32(IntPtr.Zero, INTERNET_OPTION_CONNECTED_STATE, ref state, ref size)) throw new Win32Exception(Marshal.GetLastWin32Error()); return ((state & INTERNET_STATE_CONNECTED) != 0); }
// plus simple mais moins d'infos! public static bool IsOnline2() { return !InetIsOffline(); }
"Patrick Philippot" a écrit dans le message de news: OY9$
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne vraiment dans tous les cas, contrairement à l'utilisation des APIs classiques qui ne donnent pas de résultats cohérents, est celle que je décris ici:
Ce code est facilement portable sous .Net. Notez que IPHLPAPI peut être installée sur les systèmes où elle n'est pas présente en natif.
Cordialement.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Merci pour l'API c'est ce que je cherchais...
Cordialement
-- Gilles TOURREAU Responsable Informatique
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Le Tue, 06 Feb 2007 10:25:38 +0100, Simon Mourier [SoftFluent]
<simon.mourier@mycompany.com> a écrit:
Il faut dire qu'il n'y a pas vraiment de bonne réponse à la question de
départ. Tout dépend de ce que l'on cherche vraiment à déterminer. On peut
avoir un réseau sans être "connecté à Internet" :-)
L'API de base "officielle" Microsoft est InetIsOffline, qui est
équivalente
à InternetQueryOption avec INTERNET_OPTION_CONNECTED_STATE (Wininet.dll).
Elle correspond à l'information que Internet Explorer affiche dans le
menu
Fichier / Travailler hors connexion. C'est une information pas pire
qu'une
autre :-)
Voici un code C# qui montre comment l'utiliser, je ne crois pas quelle
déclenche l'autodial?
[DllImport("wininet.dll", SetLastError = true, EntryPoint > "InternetQueryOptionA")]
private static extern bool InternetQueryOptionAInt32(IntPtr handle, int
option, ref int int32Buffer, ref int bufferLength);
// plus compliqué mais plus d'infos
public static bool IsOnline()
{
const int INTERNET_STATE_CONNECTED = 0x00000001; // connected
state
(mutually exclusive with disconnected)
const int INTERNET_STATE_DISCONNECTED = 0x00000002; // disconnected
from network
const int INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010; //
disconnected by user request
const int INTERNET_STATE_IDLE = 0x00000100; // no network
requests
being made (by Wininet)
const int INTERNET_STATE_BUSY = 0x00000200; // network requests
being made (by Wininet)
const int INTERNET_OPTION_CONNECTED_STATE = 50;
int state = 0;
int size = Marshal.SizeOf(state);
if (!InternetQueryOptionAInt32(IntPtr.Zero,
INTERNET_OPTION_CONNECTED_STATE, ref state, ref size))
throw new Win32Exception(Marshal.GetLastWin32Error());
return ((state & INTERNET_STATE_CONNECTED) != 0);
}
// plus simple mais moins d'infos!
public static bool IsOnline2()
{
return !InetIsOffline();
}
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: OY9$POcSHHA.496@TK2MSFTNGP06.phx.gbl...
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est
connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau
d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne
vraiment dans tous les cas, contrairement à l'utilisation des APIs
classiques qui ne donnent pas de résultats cohérents, est celle que je
décris ici:
Le Tue, 06 Feb 2007 10:25:38 +0100, Simon Mourier [SoftFluent] a écrit:
Il faut dire qu'il n'y a pas vraiment de bonne réponse à la question de départ. Tout dépend de ce que l'on cherche vraiment à déterminer. On peut avoir un réseau sans être "connecté à Internet" :-)
L'API de base "officielle" Microsoft est InetIsOffline, qui est équivalente à InternetQueryOption avec INTERNET_OPTION_CONNECTED_STATE (Wininet.dll). Elle correspond à l'information que Internet Explorer affiche dans le menu Fichier / Travailler hors connexion. C'est une information pas pire qu'une autre :-)
Voici un code C# qui montre comment l'utiliser, je ne crois pas quelle déclenche l'autodial?
[DllImport("wininet.dll", SetLastError = true, EntryPoint > "InternetQueryOptionA")] private static extern bool InternetQueryOptionAInt32(IntPtr handle, int option, ref int int32Buffer, ref int bufferLength);
// plus compliqué mais plus d'infos public static bool IsOnline() { const int INTERNET_STATE_CONNECTED = 0x00000001; // connected state (mutually exclusive with disconnected) const int INTERNET_STATE_DISCONNECTED = 0x00000002; // disconnected from network const int INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010; // disconnected by user request const int INTERNET_STATE_IDLE = 0x00000100; // no network requests being made (by Wininet) const int INTERNET_STATE_BUSY = 0x00000200; // network requests being made (by Wininet) const int INTERNET_OPTION_CONNECTED_STATE = 50; int state = 0; int size = Marshal.SizeOf(state); if (!InternetQueryOptionAInt32(IntPtr.Zero, INTERNET_OPTION_CONNECTED_STATE, ref state, ref size)) throw new Win32Exception(Marshal.GetLastWin32Error()); return ((state & INTERNET_STATE_CONNECTED) != 0); }
// plus simple mais moins d'infos! public static bool IsOnline2() { return !InetIsOffline(); }
"Patrick Philippot" a écrit dans le message de news: OY9$
Gilles TOURREAU wrote:
Comment peut-on faire en .NET pour savoir si un utilisateur est connecté à internet (Via n'importe quel moyen : ADSL, RTC, Réseau d'entreprise, ...etc)
Bonjour,
Je n'ai pas une méthode spécifique à .Net mais la seule qui fonctionne vraiment dans tous les cas, contrairement à l'utilisation des APIs classiques qui ne donnent pas de résultats cohérents, est celle que je décris ici: