Page 1 sur 1

internet

Publié : mer. 08/mars/2006 20:29
par graph100
es-qu'on peut detecter si la internet et branché avec pure ?

Publié : mer. 08/mars/2006 21:00
par wolfjeremy
InitNetwork() je suppose :wink:

Publié : mer. 08/mars/2006 21:30
par Flype
InitNetwork() fonctionne aussi en local, du moment que la pile TCP/IP est fonctionnel. (Serveur local par ex. avec 127.0.0.1).

Le truc qu'il faut essayer de 'pinger' un serveur existant et distant comme www.google.com par ex.

Il y d'autres méthodes (API notamment) mais celle là est cross-platform et a largement fait ses preuves.

Code : Tout sélectionner

If InitNetwork()
  ConnID = OpenNetworkConnection("www.google.com",80,#PB_Network_TCP)
  If ConnID
    Debug "connecté à internet"
    CloseNetworkConnection(ConnID)
  Else
    Debug "non connecté à internet"
  EndIf
EndIf

Publié : mer. 08/mars/2006 21:48
par Flype
ou à la win32 ( une des méthodes )

Code : Tout sélectionner

ConnectionName.s = Space(255)

If InternetGetConnectedStateEx_(@dwflags, @ConnectionName, 255, #Null)
  
  Debug ConnectionName
  
  If dwflags & #INTERNET_CONNECTION_CONFIGURED 
    Debug "An Internet connection is configured"
  EndIf 
  
  If dwflags & #INTERNET_RAS_INSTALLED 
    Debug "A Remote Access Service (RAS) is installed"
  EndIf 
  
  If dwflags & #INTERNET_CONNECTION_MODEM 
    Debug "The Internet connection is made by a modem"
  EndIf 
  
  If dwflags & #INTERNET_CONNECTION_LAN 
    Debug "The Internet connection is made via a network (LAN)"
  EndIf 
  
  If dwflags & #INTERNET_CONNECTION_PROXY 
    Debug " and using a Proxy server"
  EndIf 
  
  If dwflags & #INTERNET_CONNECTION_OFFLINE 
    Debug "The Internet connection is currently offline"
  Else 
    Debug "The Internet connection is currently connected (online)"
  EndIf 
  
  If dwflags & #INTERNET_CONNECTION_MODEM_BUSY 
    Debug "The modem is busy with another connection." 
  EndIf 
  
EndIf

Publié : jeu. 09/mars/2006 10:48
par lionel_om

Perso je préfère le ping

Publié : jeu. 09/mars/2006 11:38
par meganet
Perso, je préfère la métode avec le ping, déjà elle est portable, et emplus, elle est plus sur car defois windows fait des erreur quand il y à un intranet.
VOilà @+++

Publié : jeu. 09/mars/2006 11:47
par lionel_om
Mais si tu ping une machine de ton réseau, tu vas croire t'as une connexion internet, ce qui n'est pas forcément le cas. Ou sinon faut être sûr de pingger des host pinggable que depuis internet.

Publié : jeu. 09/mars/2006 12:04
par Flype
hey lionel_om, il est excellent ton site, je connaissais pas.
et hop dans mes favoris :P

Luai bas

Publié : jeu. 09/mars/2006 13:14
par meganet
Ouai bas y à qu'à pinger microsoft.com
ou google.com
et voilà

Publié : jeu. 09/mars/2006 13:43
par Flype
Yep.

Il faut aussi penser au fait qu'un serveur puisse être hs (même momentanément).
Aussi une bonne méthode est d'avoir une petite liste d'url à 'pinger'.
Et là plus de soucis.

Code : Tout sélectionner

InitNetwork()

Procedure IsInternetConnected()
  
  Protected Dim myList.s(3)
  
  myList(0) = "www.google.com" ; mettre ici des URLs de confiance...
  myList(1) = "www.microsoft.com" ; mais pas plus que çà, çà sert à rien.
  myList(2) = "www.w3.org"
  myList(3) = "www.yahoo.com"
  
  For i = 0 To 3
    ConnID = OpenNetworkConnection(myList(i),80,#PB_Network_TCP)
    If ConnID
      CloseNetworkConnection(ConnID)
      ProcedureReturn #True
    EndIf
  Next
  
  ProcedureReturn #False
  
EndProcedure

Debug IsInternetConnected()

Publié : jeu. 09/mars/2006 15:27
par graph100
ok merci

:D
en fait ma connection coupe souvent et ne se remet pas toute seule donc ...

sa fait pas ramer un peu la connection ??

Publié : jeu. 09/mars/2006 15:43
par Flype
ah j'avais fais un prog pour çà justement pour mon modem speedtouch alcatel...

Depuis j'ai un routeur et çà marche plus pareil mais essayes si tu veux :
http://www.penguinbyte.com/apps/pbwebst ... al1.0b.zip

Publié : jeu. 09/mars/2006 17:10
par gnozal

Code : Tout sélectionner

If InitNetwork() 
  ConnID = OpenNetworkConnection("www.google.com",80,#PB_Network_TCP) 
  If ConnID 
    Debug "connecté à internet" 
    CloseNetworkConnection(ConnID) 
  Else 
    Debug "non connecté à internet" 
  EndIf 
EndIf
Ne fonctionne pas en cas de proxy ! Ce code me répond (après 1 minute) : "non connecté à internet" Et pourtant ...

Code : Tout sélectionner

ConnectionName.s = Space(255) 

If InternetGetConnectedStateEx_(@dwFlags, @ConnectionName, 255, #Null) 
  
  Debug ConnectionName 
  
  If dwFlags & #INTERNET_CONNECTION_CONFIGURED 
    Debug "An Internet connection is configured" 
  EndIf 
  
  If dwFlags & #INTERNET_RAS_INSTALLED 
    Debug "A Remote Access Service (RAS) is installed" 
  EndIf 
  
  If dwFlags & #INTERNET_CONNECTION_MODEM 
    Debug "The Internet connection is made by a modem" 
  EndIf 
  
  If dwFlags & #INTERNET_CONNECTION_LAN 
    Debug "The Internet connection is made via a network (LAN)" 
  EndIf 
  
  If dwFlags & #INTERNET_CONNECTION_PROXY 
    Debug " and using a Proxy server" 
  EndIf 
  
  If dwFlags & #INTERNET_CONNECTION_OFFLINE 
    Debug "The Internet connection is currently offline" 
  Else 
    Debug "The Internet connection is currently connected (online)" 
  EndIf 
  
  If dwFlags & #INTERNET_CONNECTION_MODEM_BUSY 
    Debug "The modem is busy with another connection." 
  EndIf 
  
EndIf
Là, c'est beaucoup mieux :
Connexion par réseau local (LAN)
An Internet connection is configured
The Internet connection is made via a network (LAN)
and using a Proxy server
The Internet connection is currently connected (online)