Test Internet

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Mesa
Messages : 1092
Inscription : mer. 14/sept./2011 16:59

Re: Test Internet

Message par Mesa »

Pour Windows, je sais que l'état de la connexion internet est dans la base de registre mais je n'ai pas retrouvé le code...

Par contre, j'ai retrouvé cela:

Code : Tout sélectionner

;use it For which you want, ITS FREE  ; I used a bad translator on http://translate.google.com/translate_t
; because I am so tired
; (c) ses007, 2003


#INTERNET_CONNECTION_MODEM      = $1
#INTERNET_CONNECTION_LAN        = $2
#INTERNET_CONNECTION_PROXY      = $4
#INTERNET_CONNECTION_MODEM_BUSY = $8
#INTERNET_CONNECTION_OFFLINE    = $20
#INTERNET_CONNECTION_CONFIGURED = $40
#INTERNET_RAS_INSTALLED         = $10

Procedure.s InternetStatus()
Protected dwflags.l, msg.s

  If InternetGetConnectedState_(@dwflags, 0)

    If dwflags & #INTERNET_CONNECTION_CONFIGURED
      msg = msg + "An Internet connection is furnished." + Chr(10)
    EndIf

    If dwflags & #INTERNET_CONNECTION_LAN
      msg = msg + "The Internet connection is made by a network"
    EndIf

    If dwflags & #INTERNET_CONNECTION_MODEM
      msg = msg + "The Internet connection is made by a modem"
    EndIf

    If dwflags & #INTERNET_CONNECTION_PROXY
      msg = msg + " and using a Proxy server." + Chr(10)
    Else
      msg = msg + "." + Chr(10)
    EndIf

    If dwflags & #INTERNET_CONNECTION_OFFLINE
      msg = msg + "There is at present no Internet connection. "
    EndIf

    If dwflags & #INTERNET_CONNECTION_MODEM_BUSY
      msg = msg + "The modem uses at present another connection."
    EndIf

    If dwflags & #INTERNET_RAS_INSTALLED
      msg = msg + "A Remote Access Service (RAS) is installed."
    EndIf

  Else
    msg = "There is at present no Internet connection."

  EndIf

ProcedureReturn msg
EndProcedure

MessageRequester("Connection", InternetStatus(), 0)
M.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Test Internet

Message par falsam »

Tu peux essayer de tester l'adresse ip de ton routeur avec une api fourni par ipify.org

Le code figure sur la page de leur site (Pratiquement en bas de la page).

Code : Tout sélectionner

InitNetwork()
*Buffer = ReceiveHTTPMemory("https://api.ipify.org?format=json")
If *Buffer
  ParseJSON(0, PeekS(*Buffer, MemorySize(*Buffer), #PB_UTF8))
  FreeMemory(*Buffer)
  Debug GetJSONString(GetJSONMember(JSONValue(0), "ip"))
EndIf
Tant que tu as un résultat, c'est que tu es connecté.

Site https://www.ipify.org
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Test Internet

Message par SPH »

Pour ma part, j'ai reussi a pondre un code qui analyse une url. Si le resultat est "", c'est qu'on est pas connecté.

ps :
Tant que tu as un résultat, c'est que tu es connecté.
C'est exactement ca :P
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Test Internet

Message par cage »

Bonsoir a tous,

Une synthèse de mes réflexions:

Code : Tout sélectionner

EnableExplicit

Define NETWORK = #False
Define TCPIPv4 = #False
Define TCPIPv6 = #False
Define INTERNET= #False

If InitNetwork()
  Define IP, IPv6$
  NETWORK=#True
  If ExamineIPAddresses(#PB_Network_IPv6)
    Repeat
      IP = NextIPAddress()
      If IP
        TCPIPv6=#True
        IPv6$ = IPString(IP, #PB_Network_IPv6)
        Debug "IPv6: " + IPv6$
        FreeIP(IP)
      EndIf
    Until IP = 0
  EndIf
  Define IP, IPv4$
  If ExamineIPAddresses()
    Repeat
      IP = NextIPAddress()
      If IP
        TCPIPv4=#True
        IPv4$ = IPString(IP)
        Debug "IPv4: " + IPv4$
      EndIf
    Until IP = 0
  EndIf
Else
  NETWORK=#False : Debug "Problème matériel ou logiciel sur le PC"
EndIf

DataSection
  Liste_URL:
  Data.s "http://api.ipify.org/?format=plain"
  Data.s "http://ifconfig.co/ip"
  Data.s "http://monip.outils-rezo.info/text" 
  Data.s "https://myip.dnsomatic.com"
  Data.s "https://ipecho.net/plain"
  Data.s "https://myexternalip.com/raw"
  Data.s #Null$
EndDataSection

Define URL$, HttpRequest, StatusCode$, Response$, IPinternet$

Restore Liste_URL

Repeat
  Read.s URL$
  If URL$ <> #Null$
    Debug URL$
    HttpRequest = HTTPRequest(#PB_HTTP_Get, URL$, "", #PB_HTTP_NoRedirect)
    If HttpRequest
      StatusCode$ = Trim(HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode))
      Response$   = Trim(HTTPInfo(HTTPRequest, #PB_HTTP_Response))
      FinishHTTP(HTTPRequest)
      Debug "StatusCode: " + StatusCode$
      Debug "Response:   " + Response$
      Debug #Null$
      If StatusCode$ = "200"
        INTERNET = #True
        IPinternet$ = Response$
        Break ; on teste toutes les URL jusqu'a en trouver une qui réponde
      EndIf
    EndIf
  EndIf
Until URL$ = #Null$

Debug ""
Debug "NETWORK="+NETWORK
Debug "TCPIPv4="+TCPIPv4
Debug "TCPIPv6="+TCPIPv6
Debug "INTERNET="+INTERNET
Debug ""
Debug "IPv4="+IPv4$
Debug "IPv6="+IPv6$
Debug ""
Debug "IPinternet="+IPinternet$

End
On possède tous les éléments nécessaires a la suite des opérations.
CAGE
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Test Internet

Message par Micoute »

C'est bon ça ! Merci beaucoup pour le partage.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre