Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver
comment faire :
Comment vérifier que la machine ou est exécutée une application est connecté
internet ??????
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
VANNESTE Xavier
// Importing this file is needed since the method API call is being used.
[DllImport(@"C:WindowsSystem32wininet.dll")]
// This method will check the internet connection state
public static extern bool InternetGetConnectedState(ref uint connected, uint reserved);
// Defined as INTERNET_CONNECTION_OFFLINE in WinInet.h
uint uConnection = 0x20;
// Check if there is a connection
if (InternetGetConnectedState(ref uConnection, 0) == true) connecté a internet else non connecté a internet
"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> a écrit dans le message de news: %23$
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire : Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Merci pour votre aide
Sylvain
// Importing this file is needed since the method API call is being used.
[DllImport(@"C:WindowsSystem32wininet.dll")]
// This method will check the internet connection state
public static extern bool InternetGetConnectedState(ref uint connected, uint
reserved);
// Defined as INTERNET_CONNECTION_OFFLINE in WinInet.h
uint uConnection = 0x20;
// Check if there is a connection
if (InternetGetConnectedState(ref uConnection, 0) == true)
connecté a internet
else
non connecté a internet
"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> a écrit dans le message de
news: %23$ttZt4OFHA.3380@TK2MSFTNGP15.phx.gbl...
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver
comment faire :
Comment vérifier que la machine ou est exécutée une application est
connecté internet ??????
// Importing this file is needed since the method API call is being used.
[DllImport(@"C:WindowsSystem32wininet.dll")]
// This method will check the internet connection state
public static extern bool InternetGetConnectedState(ref uint connected, uint reserved);
// Defined as INTERNET_CONNECTION_OFFLINE in WinInet.h
uint uConnection = 0x20;
// Check if there is a connection
if (InternetGetConnectedState(ref uConnection, 0) == true) connecté a internet else non connecté a internet
"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> a écrit dans le message de news: %23$
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire : Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Merci pour votre aide
Sylvain
Mehdi
On Thu, 7 Apr 2005 18:03:30 +0200, Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire :
J'espere que tu n'a pas fait que ca les 6 derniers mois quand meme... :-)
Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Comme l'a dit Xavier, il y a moyen d'utiliser les API de wininet pour ca. Le probleme, c'est que cela ne t'indique pas de maniere sure si le PC est connecté a Internet ou non.
Si tu est connecté a un réseau local mais pas a Internet par exemple, il y a des chances pour que InternetGetConnectedState retourne true. Un PC peut egalement etre connecté a Internet mais derriere un proxy qui n'authorise que certains protocoles ou restricte l'acces a certains serveurs uniquement. Tu peut également etre derriere un firewall qui n'authorise les connections que sur certains ports. Enfin, il se peut que le PC soit connecté sans restriction a Internet mais que le serveur qui t'interesse soit mort. Donc la seule maniere fiable et sure a 100% de tester la connection a Internet est de tout betement tenter de se connecter au serveur qui t'interesse et voir si il répond ou pas. Pour tester si un PC peux acceder aux sites Web standards (HTTP, port 80), tu peux tenter de te connecter a google.com par exemple:
if (request.GetResponse().ContentLength > 0) { // Connecté } else { // Pas connecté } request.GetResponse().Close(); } catch { // Pas connecté }
On Thu, 7 Apr 2005 18:03:30 +0200, Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver
comment faire :
J'espere que tu n'a pas fait que ca les 6 derniers mois quand meme... :-)
Comment vérifier que la machine ou est exécutée une application est connecté
internet ??????
Comme l'a dit Xavier, il y a moyen d'utiliser les API de wininet pour ca.
Le probleme, c'est que cela ne t'indique pas de maniere sure si le PC est
connecté a Internet ou non.
Si tu est connecté a un réseau local mais pas a Internet par exemple, il y
a des chances pour que InternetGetConnectedState retourne true. Un PC peut
egalement etre connecté a Internet mais derriere un proxy qui n'authorise
que certains protocoles ou restricte l'acces a certains serveurs
uniquement. Tu peut également etre derriere un firewall qui n'authorise les
connections que sur certains ports. Enfin, il se peut que le PC soit
connecté sans restriction a Internet mais que le serveur qui t'interesse
soit mort. Donc la seule maniere fiable et sure a 100% de tester la
connection a Internet est de tout betement tenter de se connecter au
serveur qui t'interesse et voir si il répond ou pas. Pour tester si un PC
peux acceder aux sites Web standards (HTTP, port 80), tu peux tenter de te
connecter a google.com par exemple:
On Thu, 7 Apr 2005 18:03:30 +0200, Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire :
J'espere que tu n'a pas fait que ca les 6 derniers mois quand meme... :-)
Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Comme l'a dit Xavier, il y a moyen d'utiliser les API de wininet pour ca. Le probleme, c'est que cela ne t'indique pas de maniere sure si le PC est connecté a Internet ou non.
Si tu est connecté a un réseau local mais pas a Internet par exemple, il y a des chances pour que InternetGetConnectedState retourne true. Un PC peut egalement etre connecté a Internet mais derriere un proxy qui n'authorise que certains protocoles ou restricte l'acces a certains serveurs uniquement. Tu peut également etre derriere un firewall qui n'authorise les connections que sur certains ports. Enfin, il se peut que le PC soit connecté sans restriction a Internet mais que le serveur qui t'interesse soit mort. Donc la seule maniere fiable et sure a 100% de tester la connection a Internet est de tout betement tenter de se connecter au serveur qui t'interesse et voir si il répond ou pas. Pour tester si un PC peux acceder aux sites Web standards (HTTP, port 80), tu peux tenter de te connecter a google.com par exemple:
if (request.GetResponse().ContentLength > 0) { // Connecté } else { // Pas connecté } request.GetResponse().Close(); } catch { // Pas connecté }
Sylvain MALLEVAL
Merci Mehdi, j'y avais pas pensé. Le problème, c'est que mon .contentlength me renvoie tout le temps -1 et je ne comprend pas pourquoi Merci Sylvain
"Mehdi" a écrit dans le message de news: 1y28pd51j6akx.vpchor69om88$
On Thu, 7 Apr 2005 18:03:30 +0200, Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire :
J'espere que tu n'a pas fait que ca les 6 derniers mois quand meme... :-)
Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Comme l'a dit Xavier, il y a moyen d'utiliser les API de wininet pour ca. Le probleme, c'est que cela ne t'indique pas de maniere sure si le PC est connecté a Internet ou non.
Si tu est connecté a un réseau local mais pas a Internet par exemple, il y a des chances pour que InternetGetConnectedState retourne true. Un PC peut egalement etre connecté a Internet mais derriere un proxy qui n'authorise que certains protocoles ou restricte l'acces a certains serveurs uniquement. Tu peut également etre derriere un firewall qui n'authorise les connections que sur certains ports. Enfin, il se peut que le PC soit connecté sans restriction a Internet mais que le serveur qui t'interesse soit mort. Donc la seule maniere fiable et sure a 100% de tester la connection a Internet est de tout betement tenter de se connecter au serveur qui t'interesse et voir si il répond ou pas. Pour tester si un PC peux acceder aux sites Web standards (HTTP, port 80), tu peux tenter de te connecter a google.com par exemple:
if (request.GetResponse().ContentLength > 0) { // Connecté } else { // Pas connecté } request.GetResponse().Close(); } catch { // Pas connecté }
Merci Mehdi, j'y avais pas pensé. Le problème, c'est que mon .contentlength
me renvoie tout le temps -1
et je ne comprend pas pourquoi
Merci
Sylvain
"Mehdi" <vioccc@REMOVEME.gmail.com> a écrit dans le message de news:
1y28pd51j6akx.vpchor69om88$.dlg@40tude.net...
On Thu, 7 Apr 2005 18:03:30 +0200, Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver
comment faire :
J'espere que tu n'a pas fait que ca les 6 derniers mois quand meme... :-)
Comment vérifier que la machine ou est exécutée une application est
connecté
internet ??????
Comme l'a dit Xavier, il y a moyen d'utiliser les API de wininet pour ca.
Le probleme, c'est que cela ne t'indique pas de maniere sure si le PC est
connecté a Internet ou non.
Si tu est connecté a un réseau local mais pas a Internet par exemple, il y
a des chances pour que InternetGetConnectedState retourne true. Un PC peut
egalement etre connecté a Internet mais derriere un proxy qui n'authorise
que certains protocoles ou restricte l'acces a certains serveurs
uniquement. Tu peut également etre derriere un firewall qui n'authorise
les
connections que sur certains ports. Enfin, il se peut que le PC soit
connecté sans restriction a Internet mais que le serveur qui t'interesse
soit mort. Donc la seule maniere fiable et sure a 100% de tester la
connection a Internet est de tout betement tenter de se connecter au
serveur qui t'interesse et voir si il répond ou pas. Pour tester si un PC
peux acceder aux sites Web standards (HTTP, port 80), tu peux tenter de te
connecter a google.com par exemple:
Merci Mehdi, j'y avais pas pensé. Le problème, c'est que mon .contentlength me renvoie tout le temps -1 et je ne comprend pas pourquoi Merci Sylvain
"Mehdi" a écrit dans le message de news: 1y28pd51j6akx.vpchor69om88$
On Thu, 7 Apr 2005 18:03:30 +0200, Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire :
J'espere que tu n'a pas fait que ca les 6 derniers mois quand meme... :-)
Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Comme l'a dit Xavier, il y a moyen d'utiliser les API de wininet pour ca. Le probleme, c'est que cela ne t'indique pas de maniere sure si le PC est connecté a Internet ou non.
Si tu est connecté a un réseau local mais pas a Internet par exemple, il y a des chances pour que InternetGetConnectedState retourne true. Un PC peut egalement etre connecté a Internet mais derriere un proxy qui n'authorise que certains protocoles ou restricte l'acces a certains serveurs uniquement. Tu peut également etre derriere un firewall qui n'authorise les connections que sur certains ports. Enfin, il se peut que le PC soit connecté sans restriction a Internet mais que le serveur qui t'interesse soit mort. Donc la seule maniere fiable et sure a 100% de tester la connection a Internet est de tout betement tenter de se connecter au serveur qui t'interesse et voir si il répond ou pas. Pour tester si un PC peux acceder aux sites Web standards (HTTP, port 80), tu peux tenter de te connecter a google.com par exemple:
if (request.GetResponse().ContentLength > 0) { // Connecté } else { // Pas connecté } request.GetResponse().Close(); } catch { // Pas connecté }
Patrick Philippot
Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire : Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Bonjour,
D'après mon expérience, les APIs WinInet ne fonctionnent pas toujours très bien à ce propos. En particulier, GetConnectedState ne renvoie pas la bonne information. Par ailleurs, toute méthode basée sur un test de connection présente l'inconvénient majeur de provoquer l'ouverture de la boîte de dialogue de connexion dial-up. Or en général, on veut tester la présence d'une connexion de manière transparente, sans que l'utilisateur soit sollicité.
J'utilise une méthode qui fonctionne bien mais malheureusement, je n'ai pas eu le temps de traduire ce code en .Net mais ça ne devrait pas prendre trop de temps. En voici le principe:
1/ On utilise l'API GetIpForwardTable pour récupérer la table de forwarding IP.
2/ Pour chaque entrée de la table, on vérifie si le champ dwForwardDest est égal à 0. Si une des entrées de la table a cette valeur à 0, c'est qu'il existe une passerelle active, donc a priori une connexion Internet.
Je suis vraiment trop chargé pour faire ça maintenant (désolé) mais si quelqu'un a 5 minutes, voici le code de la routine en C++:
GetIpForwardTable(NULL, &dwTableSize, FALSE); pft = (MIB_IPFORWARDTABLE*) new BYTE[dwTableSize];
if (GetIpForwardTable(pft, &dwTableSize, TRUE) == NO_ERROR) { for (unsigned int nIndex = 0; nIndex < pft->dwNumEntries; nIndex++) { if (pft->table[nIndex].dwForwardDest == 0) // Il y a une passerelle par défaut { bHasDefaultRoute = TRUE; break; } } }
delete pft;
return bHasDefaultRoute; }
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Sylvain MALLEVAL wrote:
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas
trouver comment faire :
Comment vérifier que la machine ou est exécutée une application est
connecté internet ??????
Bonjour,
D'après mon expérience, les APIs WinInet ne fonctionnent pas toujours
très bien à ce propos. En particulier, GetConnectedState ne renvoie pas
la bonne information. Par ailleurs, toute méthode basée sur un test de
connection présente l'inconvénient majeur de provoquer l'ouverture de la
boîte de dialogue de connexion dial-up. Or en général, on veut tester la
présence d'une connexion de manière transparente, sans que l'utilisateur
soit sollicité.
J'utilise une méthode qui fonctionne bien mais malheureusement, je n'ai
pas eu le temps de traduire ce code en .Net mais ça ne devrait
pas prendre trop de temps. En voici le principe:
1/ On utilise l'API GetIpForwardTable pour récupérer la table de
forwarding IP.
2/ Pour chaque entrée de la table, on vérifie si le champ dwForwardDest
est égal à 0. Si une des entrées de la table a cette valeur à 0, c'est
qu'il existe une passerelle active, donc a priori une connexion
Internet.
Je suis vraiment trop chargé pour faire ça maintenant (désolé) mais si
quelqu'un a 5 minutes, voici le code de la routine en C++:
GetIpForwardTable(NULL, &dwTableSize, FALSE);
pft = (MIB_IPFORWARDTABLE*) new BYTE[dwTableSize];
if (GetIpForwardTable(pft, &dwTableSize, TRUE) == NO_ERROR)
{
for (unsigned int nIndex = 0; nIndex < pft->dwNumEntries; nIndex++)
{
if (pft->table[nIndex].dwForwardDest == 0)
// Il y a une passerelle par défaut
{
bHasDefaultRoute = TRUE;
break;
}
}
}
delete pft;
return bHasDefaultRoute;
}
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Cela fait bien 6 mois que je cherche cela et je n'ai toujours pas trouver comment faire : Comment vérifier que la machine ou est exécutée une application est connecté internet ??????
Bonjour,
D'après mon expérience, les APIs WinInet ne fonctionnent pas toujours très bien à ce propos. En particulier, GetConnectedState ne renvoie pas la bonne information. Par ailleurs, toute méthode basée sur un test de connection présente l'inconvénient majeur de provoquer l'ouverture de la boîte de dialogue de connexion dial-up. Or en général, on veut tester la présence d'une connexion de manière transparente, sans que l'utilisateur soit sollicité.
J'utilise une méthode qui fonctionne bien mais malheureusement, je n'ai pas eu le temps de traduire ce code en .Net mais ça ne devrait pas prendre trop de temps. En voici le principe:
1/ On utilise l'API GetIpForwardTable pour récupérer la table de forwarding IP.
2/ Pour chaque entrée de la table, on vérifie si le champ dwForwardDest est égal à 0. Si une des entrées de la table a cette valeur à 0, c'est qu'il existe une passerelle active, donc a priori une connexion Internet.
Je suis vraiment trop chargé pour faire ça maintenant (désolé) mais si quelqu'un a 5 minutes, voici le code de la routine en C++:
GetIpForwardTable(NULL, &dwTableSize, FALSE); pft = (MIB_IPFORWARDTABLE*) new BYTE[dwTableSize];
if (GetIpForwardTable(pft, &dwTableSize, TRUE) == NO_ERROR) { for (unsigned int nIndex = 0; nIndex < pft->dwNumEntries; nIndex++) { if (pft->table[nIndex].dwForwardDest == 0) // Il y a une passerelle par défaut { bHasDefaultRoute = TRUE; break; } } }
delete pft;
return bHasDefaultRoute; }
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Mehdi
On Fri, 8 Apr 2005 02:32:22 +0200, Sylvain MALLEVAL wrote:
Merci Mehdi, j'y avais pas pensé. Le problème, c'est que mon .contentlength me renvoie tout le temps -1 et je ne comprend pas pourquoi
Il est possible qu'il y ai une erreur dans mon code. En fait c'est un bout de code que j'avais utilisé il y a tres longtemps dans une petite appli et j'avais utilisé le test suivant:
if (request.GetResponse().ToString().Length > 0)
Seulement en le relisant avant de te l'envoyer, j'ai trouvé bizarre d'utiliser ToString vu qu'il y avait ContentLength donc j'ai remplacé. C'est possible que ca ne marche pas. En fait, je n'ai jamais utilisé le WebClient a part pour ca donc regarde la doc, je ne l'ai peut etre pas utilisé comme il le fallait. Sinon la méthode de Patrick a l'air pas mal a utiliser en complément avec cette méthode surtout pour ceux qui ont un bon vieux modem dial-up.
On Fri, 8 Apr 2005 02:32:22 +0200, Sylvain MALLEVAL wrote:
Merci Mehdi, j'y avais pas pensé. Le problème, c'est que mon .contentlength
me renvoie tout le temps -1
et je ne comprend pas pourquoi
Il est possible qu'il y ai une erreur dans mon code. En fait c'est un bout
de code que j'avais utilisé il y a tres longtemps dans une petite appli et
j'avais utilisé le test suivant:
if (request.GetResponse().ToString().Length > 0)
Seulement en le relisant avant de te l'envoyer, j'ai trouvé bizarre
d'utiliser ToString vu qu'il y avait ContentLength donc j'ai remplacé.
C'est possible que ca ne marche pas. En fait, je n'ai jamais utilisé le
WebClient a part pour ca donc regarde la doc, je ne l'ai peut etre pas
utilisé comme il le fallait. Sinon la méthode de Patrick a l'air pas mal a
utiliser en complément avec cette méthode surtout pour ceux qui ont un bon
vieux modem dial-up.
On Fri, 8 Apr 2005 02:32:22 +0200, Sylvain MALLEVAL wrote:
Merci Mehdi, j'y avais pas pensé. Le problème, c'est que mon .contentlength me renvoie tout le temps -1 et je ne comprend pas pourquoi
Il est possible qu'il y ai une erreur dans mon code. En fait c'est un bout de code que j'avais utilisé il y a tres longtemps dans une petite appli et j'avais utilisé le test suivant:
if (request.GetResponse().ToString().Length > 0)
Seulement en le relisant avant de te l'envoyer, j'ai trouvé bizarre d'utiliser ToString vu qu'il y avait ContentLength donc j'ai remplacé. C'est possible que ca ne marche pas. En fait, je n'ai jamais utilisé le WebClient a part pour ca donc regarde la doc, je ne l'ai peut etre pas utilisé comme il le fallait. Sinon la méthode de Patrick a l'air pas mal a utiliser en complément avec cette méthode surtout pour ceux qui ont un bon vieux modem dial-up.