Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester si on est bien connecté à Internet

8 réponses
Avatar
Eric
Bonjour,

Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb si la
connexion à Internet est active

Merci d'avance

Eric

8 réponses

Avatar
scraper
Bonjour Eric
(dans news:)
tu nous disais :

Bonjour,

Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb
si la connexion à Internet est active

Merci d'avance

Eric



peut être avec l'API InternetGetConnectedState ??
et InternetAttemptConnect pour lancer éventuellement une connexion ....



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
Christian HUBERT-HUGOUD- Xtrem7
Voila ce que j'utilise :

Public Enum EIGCInternetConnectionState
INTERNET_CONNECTION_MODEM = &H1&
INTERNET_CONNECTION_LAN = &H2&
INTERNET_CONNECTION_PROXY = &H4&
INTERNET_RAS_INSTALLED = &H10&
INTERNET_CONNECTION_OFFLINE = &H20&
INTERNET_CONNECTION_CONFIGURED = &H40&
End Enum

Dim eR As EIGCInternetConnectionState
InternetConnectionOK = InternetConnected(eR, sName)


Public Function InternetConnected(Optional ByRef eConnectionInfo As
EIGCInternetConnectionState, Optional ByRef sConnectionName As String) As
Boolean
Dim dwFlags As Long
Dim sNameBuf As String
Dim lR As Long
Dim iPos As Long

sNameBuf = String$(513, 0)
lR = InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&)

eConnectionInfo = dwFlags

iPos = InStr(sNameBuf, vbNullChar)

If iPos > 0 Then
sConnectionName = Left$(sNameBuf, iPos - 1)
ElseIf Not sNameBuf = String$(513, 0) Then
sConnectionName = sNameBuf
End If

InternetConnected = (lR = 1)

End Function


Christian





"scraper" a écrit dans le message de
news:%
Bonjour Eric
(dans news:)
tu nous disais :

> Bonjour,
>
> Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb
> si la connexion à Internet est active
>
> Merci d'avance
>
> Eric

peut être avec l'API InternetGetConnectedState ??
et InternetAttemptConnect pour lancer éventuellement une connexion ....



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper



Avatar
Jean-Marc
"Eric" a écrit dans le message de
news:
Bonjour,

Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb si


la
connexion à Internet est active



Hello,

tu mets un composant winsock sur ta form, et tu tentes de te connecter vers
un serveur qui est "toujours" vivant:
- connection sur www.google.com sur le port 80, ou conection sur un serveur
pop3 sur le port 110.

Si la connection est un succès, alors tu es connecté à Internet (100%). Si
elle échoue, tu es presque sur que tu n'est pas connecté, à moins que le
serveur de google ou le serveur de mail soit morts (peu probable).

--
Jean-marc
Avatar
Patrick Philippot
Eric wrote:
Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb
si la connexion à Internet est active



Bonjour,

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 Visual Basic 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++:

BOOL MaClasse::CheckConnection()
{
MIB_IPFORWARDTABLE* pft;
DWORD dwTableSize = 0;
BOOL bHasDefaultRoute = FALSE;

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
Avatar
Guy DETIENNE
Salut ;O)

Il suffirait de tester plusieurs serveurs à la fois ainsi a probabilité
qu'ils soient tous 'down' est quasi nulle.
Au moins un répondra à l'appel... Sinon, très probable qu'il n'y ait pas de
connexion Internet.

Guy

"Jean-Marc" a écrit dans le message de
news:4142a838$0$4073$
"Eric" a écrit dans le message de
news:
> Bonjour,
>
> Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb si
la
> connexion à Internet est active

Hello,

tu mets un composant winsock sur ta form, et tu tentes de te connecter


vers
un serveur qui est "toujours" vivant:
- connection sur www.google.com sur le port 80, ou conection sur un


serveur
pop3 sur le port 110.

Si la connection est un succès, alors tu es connecté à Internet (100%). Si
elle échoue, tu es presque sur que tu n'est pas connecté, à moins que le
serveur de google ou le serveur de mail soit morts (peu probable).

--
Jean-marc





Avatar
François Picalausa
Hello,

On peut rendre la méthode plus fiable en demandant à plusieurs serveurs
(yahoo, microsoft, ...)
Mais pourquoi ne pas passer par ICPM et plus particulièrement le célèbre
ping pour savoir s'il est alive?
Le ping peut être refusé sur certains serveurs, c'est vrai.
Sinon, pour l'implémenter, on peut utiliser IcmpCreateFile, IcmpSendEcho et
IcmpCloseHandle (+WSAStartup, WSACleanup)
On pourrait aussi se dire que la conversion de nom de domaine en IP est
souvent faite par le FAI (sauf cas de bloquage de certains sites dans le
fichier host...) et donc tenter de traduire un nom de domaine en IP.
Ceci est possible via gethostbyname qui renvoie une structure hostent ou
avec getaddrinfo (winsock 2) et beaucoup de copymemory.

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com

"Jean-Marc" a écrit dans le message de
news:4142a838$0$4073$
"Eric" a écrit dans le message de
news:
Je souhaite savoir s'il est possible de testée, à partir d'un prog
Vb si la connexion à Internet est active


tu mets un composant winsock sur ta form, et tu tentes de te
connecter vers un serveur qui est "toujours" vivant:
- connection sur www.google.com sur le port 80, ou conection sur un
serveur pop3 sur le port 110.


Avatar
Patrick Philippot
Christian HUBERT-HUGOUD- Xtrem7 wrote:
Voila ce que j'utilise :
<snip>
lR = InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&)



Bonjour,

Malheureusement (comme le démontre très vite une recherche Google
Newsgroups sur InternetGetConnectedStateEx ou InternetGetConnectedState)
cette API ne fonctionne pas toujours correctement et donne des résultats
aberrants dans certaines configurations.

J'ai eu à régler ce problème récemment et nous avons testé différentes
méthodes sur une grande variété de systèmes (de Win98 à XP) connectés
soit en dial-up, soit via LAN, soit via un modem ADSL,... La seule
approche qui fonctionne vraiment dans tous les cas de figure, c'est
celle que j'ai décrite plus haut. Encore une fois, je suis désolé de ne
pas avoir une version VB à proposer, j'essaierai de faire ça dès que je
suis à nouveau disponible...

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
ng
Salut,

Pq pas un ping sur plusieurs gros serveurs ? (google.com, yahoo.fr,
microsoft.com...)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


Eric wrote:
Bonjour,

Je souhaite savoir s'il est possible de testée, à partir d'un prog Vb
si la connexion à Internet est active

Merci d'avance

Eric