Détecter si le pc est connecté à un réseau

Description

Je cherchais pour mon application portable à détecter la présence d'un réseau actif, auquel cas certaines fonctionnalités étaient désactivées automatiquement.
Mes recherches m'ont naturellement mené au test des API IsNetworkAlive et InternetGetConnectedState, sources disponibles sur l'excellent site de Michel Bardou ou ici même (liens plus bas). Mais comme il le dit lui-même, ces API ne donnent pas le résultat attendu.
J'ai donc pris le problème avec une autre approche selon l'axiome suivant :
- Si je suis connecté, j'ai une adresse IP soit attribuée par un serveur DHCP, soit manuellement;
- Si je ne suis pas connecté, alors mon adresse par défaut est 127.0.0.1 (attribuée par Windows).
Il ne reste plus qu'à utiliser l'excellente fonction GetIPFromHost qui n'est hélas pas de moi (lien plus bas) pour déterminer si l'IP du poste est 127.0.0.1 ou une autre.

Conclusion :


Petit bémol : lenteur de la réactualisation de l'adresse IP qui est de l'ordre de quelques secondes.

Tout commentaire bienvenu !

Lien des API InternetGetConnectedState et IsNetworkAlive : http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=125&PHPSESSID=f26f77c463b7a157bcd7dc2a077aae2f
ou sur Delphifr : http://www.delphifr.com/code.aspx?id=12134
Lien de la fonction GetIPFromHost : http://delphi.about.com/od/networking/l/aa103100a.htm

Lien de mon entreprise : http://www.ecsystemes.fr

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.