begin process at 2008 07 04 23:20:58
1 204 970 membres
486 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SAVOIR SI CONNECTÉ AU NET EN 4 LIGNE AVEC WINSOCK


Information sur la source

Catégorie :Réseau & Internet Niveau : Débutant Date de création : 09/11/2004 Vu : 3 224

Note :
4,56 / 10 - par 9 personnes
4,56 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (29)
Ajouter un commentaire et/ou une note

Description

Voila, c'est ma première source que je poste sur vbfrance, étant donné que tout le monde fait des sources pour savoir si on est connecté au net en 50 lignes, moi je vais vous montrer quelque chose de simple, donc pour les newbies comme moi.

Source

  • private sub form_load()
  • ' votre adresse ip est 127.0.0.1 si vous n'êtes pas connecté au net
  • ' donc si votre adresse ip est 127.0.0.1 c'est que vous n'êtes pas
  • ' connecté
  • if winsock1.localip="127.0.0.1" then
  • msgbox "Vous n'êtes pas connecté au net"
  • else
  • msgbox "Vous êtes connecté au net, votre ip est : " & winsock1.localip
  • endif
  • End Sub
private sub form_load()
' votre adresse ip est 127.0.0.1 si vous n'êtes pas connecté au net
' donc si votre adresse ip est 127.0.0.1 c'est que vous n'êtes pas  
' connecté
if winsock1.localip="127.0.0.1" then 

msgbox "Vous n'êtes pas connecté au net"
else
msgbox "Vous êtes connecté au net, votre ip est : " & winsock1.localip
endif
End Sub
  • signaler à un administrateur
    Commentaire de thierrydelepine le 09/11/2004 17:16:10

    je ne suis pas d'accord,
    avec ton code tu ne sais pas si tu est connecté au net.

    tu sais juste qu'un adapteur reseau est actif et a une adresse IP (Carte reseau, acces distant, ...).

    donc au lieu de "Vous êtes connecté au net, votre ip est : " j'aurai mis "vous avez au moins un adaptateur reseau actif configuré avec l'adresse IP :"

    la vrai detection d'une connexion internet est beaucoup plus compliquée.

    je ne conseil donc pas l'utilisation de ce code pour tester une connexion internet, ceci dit si ce code est pour toi et que pour toi et que ton appli ne tournera pas sur aucun autre PC alors c'est utilisable mais pas si tu dois diffuser ton prog sur d'autres ordinateurs

  • signaler à un administrateur
    Commentaire de pepekiss le 09/11/2004 17:37:56

    As-tu essayé cette source? Cela ne définit pas seulement l'adaptateur reseau. Cela dit réellement si on est connecté ou non au net. Essaie la dans tous les cas de figures, et tu verras

  • signaler à un administrateur
    Commentaire de thierrydelepine le 09/11/2004 17:44:51

    Pour te faire plaisir je viens de faire les test et il me dit "vous etes connecté au net ..." .

    ERREUR, toutes mes fenetres Internet Explorer etait fermées, je n'etait pas connecté a internet.

    je suis sur un reseau et donc ton code a testé que j'avais un adaptateur actif sur le reseau ( ca c'est exact) mais je n'etais pas connecté a internet donc tu as tout faux.

    si tu veux faire un test c'est tres simple met une crate reseau dans un micro configure ces propriétés reseaux et branche le sur un HUB tu verra ton code dira que tu es conencté a Internet alors que ce n'est pas vrai

  • signaler à un administrateur
    Commentaire de legion91 le 09/11/2004 17:45:53

    1er) 127.0.0.1 n'est pas forcement l'ip reseaux par default
    2°) sa deja ete dit plein de fois et surtout là, c'est du foutage de gueule.

    3°) Je prefere cette solution par API:

    Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
    Public Function IsNetConnectOnline() As Boolean
    IsNetConnectOnline = InternetGetConnectedState(0&, 0&)
    End Function
    Sub Main()
    If IsNetConnectOnline() = False Then
    MsgBox "Vous êtes actuellement déconnecté.", vbInformation
    Exit Sub
    Else
    MsgBox "Vous êtes actuellement connecté à Internet.", vbInformation
    End If
    End Sub

    4°) Ou encore, mais il me semble que sa marche pas chez tt le monde:
    Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As Long

    Private Sub Form_Load()
    MsgBox "Etes vous connecté a internet? " + CStr(CBool(Not (InetIsOffline(0)))), vbInformation
    End Sub

  • signaler à un administrateur
    Commentaire de legion91 le 09/11/2004 17:47:28

    J'allais oublier:

    Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As Long

    MsgBox "Etes vous connecté a internet? " + CStr(CBool(Not (InetIsOffline(0)))), vbInformation

    Sa fait deux lignes lol

  • signaler à un administrateur
    Commentaire de thierrydelepine le 09/11/2004 17:55:54

    Desole legion91 mais ce code via l'API InetIsOffline je l'avais deja testé et c'est le meme resultat qu'avec le code de pepekiss, tu detecte seulement si tu as un adaptateur actif sur la machine.

    si ton PC est relié a internet par carte reseau via un proxy le resultat est faux, il renverra toujours vous etes connecté a internet meme si tu n'as aucune fenetre ouverte sur le PC.

  • signaler à un administrateur
    Commentaire de pepekiss le 09/11/2004 19:27:15

    Mais ne peut-on pas être connecté sans pour autant ne pas avoir de fenêtre ouvertes?

  • signaler à un administrateur
    Commentaire de e_NeX le 09/11/2004 20:35:34

    je suis desole pepekiss mais thierrydelepin a raison:

    ta juste besion d'un routeur (par example) pour qu'il tassigne une IP

    la chos ce searit dessayer de se connecter a un servver toujour actif!

  • signaler à un administrateur
    Commentaire de thierrydelepine le 09/11/2004 20:50:54

    Pour e_NeX,

    Tu as raison c'est une solution simple a mettre en oeuvre pour tester si un PC est bien relié a internet.

    Un principe est de faire par exemple un ping vers un ou deux serveurs toujours présent sur le net ( et qui accepte le ping ) afin de verifier que l'on est bien connecté a internet.

    Mais ce n'est pas le top quand même, cela reste de bidouille et si les serveurs disparraissent du net bye bye le test de connexion Internet.

  • signaler à un administrateur
    Commentaire de e_NeX le 09/11/2004 21:01:44

    pour thierrydelepine pas besion d'un ping juste un connection a un server de Krosoft (toujours pas example) sutr le port 80 (evidemment) et si ta connection est acceptee : connecte = true
    si ta reponse est Hos unreacheable ou autrechose dans le style unknow host : connection = false

  • signaler à un administrateur
    Commentaire de JulioDelphi le 09/11/2004 22:14:56 administrateur CS

    hello

    1) Fenetre internet ouverte ou pas : aucun rapport avec la connexion
    2) 127.0.0.1 n'est effectivement pas une reference
    3) Si je suis en LAN et que mon cable est bien relié a un(plus) autre(s) pc(s), mon ip sera par exemple : 192.168.0.5, ce qui ne veut pas dire que je suis connecté a internet.
    4) la solution du ping ou de choper une page web est effectivement barbare mais je regrette : est la meilleure !!

    Pour les personnes ayant une connexion via un modem (avec un seul pc), il se peut que vous trouviez un code qui vous donne : votre IP locale (192.168.xxx.xxx) et votre IP internet. Elles seront ttes les deux diffrentes.
    Vous vous direz : "oui ! j'ai trouvé ! si j'ai deux ip diffrenete alors je suis connecté au net !"
    je vous arrete tout de suite : c faux ! cela ne marchera QUE sur un réseau monoposte !!!

    Si vous vous trouvez derriere un routeur, le routeur LUI est connecté au net, mais vous, vous etes connecté au routeur, il vous redistribue (via un switch/hub) votre bande passante. Résultat : vous trouverez grace a votre prog deux adresse IP identique. et pourtant vous serz sur le net.

    Je repete donc ke la solution de bidouille du ping ou de la page web chopée est la meilleure

    voila :) bonne prog

  • signaler à un administrateur
    Commentaire de thierrydelepine le 09/11/2004 22:24:14

    un autre solution plus propre encore que le ping( j'y ai pensé apres),
    c'est de faire une resolution de nom sur l'adresse www.microsoft.com et si elle se fait c'est que nous sommes bien sur internet car dans ce cas c'est le serveur DNS du provider internet qui nous repond.
    je persiste a dire que ca reste de la bidouille car, il me semble que si on demande un ping ou un test sur le port 80 d'une page web, ou une resolution de noms, le pc, si il ne trouve pas en local ce qu'il veut, va demander une connexion internet.
    Donc c'est pas cool si a chaque fois qu'un prog verifie la connexion, l'utilisateur se mange une fenetre de demande de connexion a internet si il est hors ligne.

  • signaler à un administrateur
    Commentaire de econs le 10/11/2004 03:13:06 administrateur CS

    Yep, marche pas. je suis sur un réseau local, et il me donne mon IP sur le réseau, mais rien à voir avec la connection Internet.

  • signaler à un administrateur
    Commentaire de Neo.balastik le 10/11/2004 09:21:34

    Cette méthode est réellement trop limitée pour être convaincante.

    Elle ne peut être retenue comme une façon efficace.  Il existe trop de  cas de figure où cette source trouve ses limites (Proxy, Routeur,...).  Le cas le plus extrême: et si mon fiston s'amuse à retirer le cable RJ45 de ma machine... J'ai tjs mon IP qui m'a été attribuée par mon FAI (si je suis en direct), mais suis-je encore sur le net ?  Et non !  Cela pourra être critique pour une application que l'on développerait.  
    La façon la plus sure selon moi est d'interroger un serveur lequel nous sommes (quasi) certains qu'il répondra.  Mais c'est vrai, nous sommes dès lors dépendant de ce serveur.  Mais rien n'exclu qu'en cas de non réponse d'un serveur, nous en testions d'autres.
    Une dizaine par exemple (serveurs très courants).  Si aucune réponse de ces 10 serveurs, la probabilité que nous ne soyons pas sur le net est maximale.

  • signaler à un administrateur
    Commentaire de jcq le 10/11/2004 10:05:08

    Il n'y a aucune méthode fiable pour tester si le poste est connecté à internet. Car même en effectuant un ou plusieurs pings, ça lancera la procédure de connexion à internet... Donc vraiment pas bon.

  • signaler à un administrateur
    Commentaire de e_NeX le 10/11/2004 14:29:49

    porthierrydelepine,

    qand tu te connecte au serveur, apres il faut que tu envoie une requette a ce serveur pour qu'il te renvoie la pages desiree que tu request! mais ce n'est pas ce que l'on veux faire: on veux juste se connecter et se deconnecter sans dialoguer avec ce serveur et comme Neo.balastik l'a dit: TESTER plusieurs serveurs serait plus precis! personellement, je prendrait un serveur qui donne l'heure exate (a mon avis ils ne doivent quasiment jamais etre en panne!)
    pour econs,
    evidemment : quand tu branche ta machine a ton routeur, ce dernier t'assigne une IP (qui est privee) meme si ton hub n'est pas branche sur ton modem!

    ps: je ne suis pas d'accord avec jcq

  • signaler à un administrateur
    Commentaire de fiduce le 10/11/2004 17:38:00

    Ok, je ne suis d'accord avec personne :

    1) d'abord parce qu'une connexion internet ne va pas forcément de pair avec une fenêtre de browser ouverte (les pagers genre AIM, ICQ ou messenger utilisent internet aussi, par exemple ... les P2P, etc).

    2) ensuite parce qu'il n'y a rien de plus chiant (pour un utilisateur) que de voir 5 fois par minute sa fenêtre de connexion s'afficher ("Voulez vous démarrer une connexion internet ?"), ce qui arrive immanquablement à chaque fois qu'un soft essaye de se connecter à une adresse de serveur du web. Quand l'utilisateur ne veut pas se connecter, il faut respecter son souhait (même s'il a de quoi se connecter). Donc, toutes les solutions "actives" me paraissent mauvaises (de type "j'essaye de me connecter en TCP sur le port 80 d'un serveur, je verrai bien si ça marche"). Reste à voir si un simple ping déclenche aussi l'outil de connexion automatique ... (un ping étant, à un niveau donné, une tentative de connexion).
    A mon avis, le meilleurs code est celui qui ne réveillerait même pas un firewall ...

  • signaler à un administrateur
    Commentaire de fiduce le 10/11/2004 17:55:31

    Désolé, jcq avait déjà dit la même chose ...

  • signaler à un administrateur
    Commentaire de jcq le 10/11/2004 18:10:01

    merci fiduce, enfin quelqu'un d'accord avec moi...

  • signaler à un administrateur
    Commentaire de Neo.balastik le 10/11/2004 18:15:06

    Simple question à l'assemblée :

    ayant une connexion permanente, je n'ai jamais de boîte de dialogue demandant une connexion (ce qui apparement pose problème ici).  Si l'on exécute la commande PING dans une invite de commande, cette boîte apparaît-elle ?

  • signaler à un administrateur
    Commentaire de JulioDelphi le 10/11/2004 18:20:47 administrateur CS

    non elle n'apparait pas, je suis aussi sur une connexion permanente sans boite de dialogue, pour moi ça marcherais mais pas pour les personnes avec modem a connecter manuellement, avec cette "foutue" boite :D

  • signaler à un administrateur
    Commentaire de Neo.balastik le 10/11/2004 18:25:06

    JulioDelphi > merci de ta réponse, mais au fait ma question s'adressait essentiellement aux personnes ayant justement cette boite.  Car je sais bien entendu que cette boite n'apparait dans le cas d'une connexion permanente...

  • signaler à un administrateur
    Commentaire de pepekiss le 10/11/2004 18:31:06

    En gros, aucune façon d'être sûre à 100% de l'état de la connexion. Ce qui peut être handicapant pour certaines sources. (Merci à ceux qui ont remonté ma note)

  • signaler à un administrateur
    Commentaire de chasseurdedemon le 01/12/2004 19:22:25

    vous dites ke d connerie,
    si tu ouvre une page internet et ke le net fonction et bien ^m si tu ferme tt les fenetre internet ton pc reste connecter au net c pa parce que vous ne l'utiliser pas k'il né pa connecter vous etes con ou koi ton pc vas pa passer sa journé a ce connecter au net des que tu ouvre une fenetre et ce deconnecter d ke tu la ferme c complétement idio ce ke vous dissez et cela ^m kan vous avez internet par un reseau local il reste connecter que t fenetre sont ouvert ou pas jusqu'a ce qu'a ce que vous éteigner votre pc

  • signaler à un administrateur
    Commentaire de thierrydelepine le 02/12/2004 10:29:50

    chasseurdedemon :

    avant de poster un commentaire assure toi de sa validité.
    fait un test tout simple, met un modem sur ton PC avec un acces vers un FAI,  tu verra que si tu lance IE et que tu n'est pas connecté, tu aura une demande de connexion a Internet.
    idem si tu passe par un proxy si tu es sur un LAN.
    ce que tu dis n'est valable que dans un cas: une connexion directe a ton PC genre ADSL.

    ceci dit tu est hors sujet puisque le probleme de depart est de detecter si on est ou pas connecté a internet.


    PS: pas de mot vulgaire, pas de language SMS c'est mieux

  • signaler à un administrateur
    Commentaire de JulioDelphi le 02/12/2004 10:47:45 administrateur CS

    chasseurdedemon : les insultes tu te les garde, ce que tu dis a deja été dit plus haut et saus fautes d'orthographe. ton post ne vaux rien.

    thierry : je suis connecté a un reseau, branché sur le switch, et le routeur qui chope la connexion au net est branché sur le switch aussi et partage la connexion. et donc en aucun cas je n'ai d'ouverture de fenetre de demande de connexion :(

    il est clair que ce n'est pas simple de savoitr si on est connecté, mais je pensais le sujet clos !

  • signaler à un administrateur
    Commentaire de thierrydelepine le 02/12/2004 11:14:12

    pour JulioDelphi, moi aussi je pensais le sujet clos sur cette API.

    ton cas est similaire a une connexion ADSL directe, moi je te parle d'un reseau avec PROXY, ou la, a chaque acces a internet une fenetre de connexion au proxy est demandée (equivaut a une demande comme par modem).

  • signaler à un administrateur
    Commentaire de JulioDelphi le 02/12/2004 15:54:27 administrateur CS

    ok tout a fait

  • signaler à un administrateur
    Commentaire de ra3d le 17/06/2007 14:22:04

    salut,j'ai une carte satelite ce code affiche l'adress de cette carte 192.168.238.238

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS