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

Tester la connexion internet

3 réponses
Avatar
Jean Naimard
Bonjour,

Je cherche a savoir si ma connexion internet est établie afin de rebooter ma
livebox en cas de probleme.
Ma livebox est en routeur sur ethenet.
J'ai trouvé le moyen de la rebooter en ouvrant une cdm et en ecrivant les
commandes telnet via des sendkeys.
C'est pas terrible mais ca marche (si vous avez un meilleur moyen je suis
preneur).
Il ne me reste plus qu'a savoir si je suis connecté ou non
si vous pouvez me fournir un bout de code...
merci de votre aide

3 réponses

Avatar
Picalausa François
Hello,

"Jean Naimard" a écrit dans le message de news:
4555994d$0$27380$
J'ai trouvé le moyen de la rebooter en ouvrant une cdm et en ecrivant les
commandes telnet via des sendkeys.
C'est pas terrible mais ca marche (si vous avez un meilleur moyen je suis
preneur).



S'agit-il réellement de telnet utilisé en tant que client telnet, ou en tant
que client "autre", puisque telnet effectue aussi bien cette tâche?
Dans un cas comme dans l'autre, avec un contrôle Winsock, tu devrais pouvoir
t'en sortir.
Dans le premier cas, je te conseille cependant de lire la documentation
associée à telnet:
http://www.ietf.org/rfc/rfc0854.txt
ou en français:
http://abcdrfc.free.fr/rfc-vf/rfc854.html

Il ne me reste plus qu'a savoir si je suis connecté ou non
si vous pouvez me fournir un bout de code...



Une méthode est proposée sur la FAQ:
http://faq.vb.free.fr/index.php?questionw
Celle-ci n'est cependant pas toujours très fiable. Une autre méthode,
apparement plus complète avait été proposée par Partick Philippot:
http://groups.google.fr/group/microsoft.public.fr.vb/msg/cba7bb8373d3b809
Dont voici une possible traduction VB:
Private Const ERROR_SUCCESS As Long = 0

Private Type MIB_IPFORWARDROW
dwForwardDest As Long
dwForwardMask As Long
dwForwardPolicy As Long
dwForwardNextHop As Long
dwForwardIfIndex As Long
dwForwardType As Long
dwForwardProto As Long
dwForwardAge As Long
dwForwardNextHopAS As Long
dwForwardMetric1 As Long
dwForwardMetric2 As Long
dwForwardMetric3 As Long
dwForwardMetric4 As Long
dwForwardMetric5 As Long
End Type

Private Type MIB_IPFORWARDTABLE
dwNumEntries As Long
table(0) As MIB_IPFORWARDROW
End Type

Private Declare Function GetIpForwardTable _
Lib "Iphlpapi" _
( _
pIpForwardTable As Any, _
pdwSize As Long, _
ByVal bOrder As Long _
) _
As Long

Private Function IsConnected() As Boolean
Dim TableSize As Long, IPFRows() As Long, i As Long

ReDim IPFRows(0)
GetIpForwardTable IPFRows(0), TableSize, 0

ReDim IPFRows(TableSize / 4)
If GetIpForwardTable(IPFRows(0), TableSize, 1) = ERROR_SUCCESS Then
For i = 1 To IPFRows(0) * 14 Step 14
'IPFRows(0) = MIB_IPFORWARDTABLE.dwNumEntries
If IPFRows(i) = 0 Then
'PFRows(1 + (i - 1) * 14) ' MIB_IPFORWARDTABLE.table(nIndex).dwForwardD­est
IsConnected = True

Exit For
End If
Next i
End If
End Function

Une troisième technique fréquemment utilisée est la requête ping vers un ou
plusieurs serveurs considérés comme ayant un bon uptime pour encore un
certain temps (ce qui est une définition TRES floue..). On retrouve
fréquemment parmis ces serveurs www.google.com www.yahoo.com, ...
L'avantage (ou désavantage) est qu'il est possible alors d'indiquer qu'il
n'y a pas de connection si un pare feu les bloque toutes.
Un article à ce sujet est disponible sur la KB:
http://support.microsoft.com/?kbid00197

--
Picalausa François
Avatar
Jean Naimard
Merci pour infos de qualité
J'ai reussi à faire ce que je voulais.
J'ai utilisé le ping pour tester la connexion car l'autre methode ne detecte
que la connexion du reseau apparament.
Si vous avez un exemple avec winsock pour eviter le lancement de la fenetre
dos ce serait bien car je ne suis pas un expert.
En fait il suffit de faire:
telnet 192.168.1.1
login: root
Password: 1234
[root @ home]$: reboot

merci

"Picalausa François" a écrit dans le message de news:

Hello,

"Jean Naimard" a écrit dans le message de news:
4555994d$0$27380$
J'ai trouvé le moyen de la rebooter en ouvrant une cdm et en ecrivant les
commandes telnet via des sendkeys.
C'est pas terrible mais ca marche (si vous avez un meilleur moyen je suis
preneur).



S'agit-il réellement de telnet utilisé en tant que client telnet, ou en
tant que client "autre", puisque telnet effectue aussi bien cette tâche?
Dans un cas comme dans l'autre, avec un contrôle Winsock, tu devrais
pouvoir t'en sortir.
Dans le premier cas, je te conseille cependant de lire la documentation
associée à telnet:
http://www.ietf.org/rfc/rfc0854.txt
ou en français:
http://abcdrfc.free.fr/rfc-vf/rfc854.html

Il ne me reste plus qu'a savoir si je suis connecté ou non
si vous pouvez me fournir un bout de code...



Une méthode est proposée sur la FAQ:
http://faq.vb.free.fr/index.php?questionw
Celle-ci n'est cependant pas toujours très fiable. Une autre méthode,
apparement plus complète avait été proposée par Partick Philippot:
http://groups.google.fr/group/microsoft.public.fr.vb/msg/cba7bb8373d3b809
Dont voici une possible traduction VB:
Private Const ERROR_SUCCESS As Long = 0

Private Type MIB_IPFORWARDROW
dwForwardDest As Long
dwForwardMask As Long
dwForwardPolicy As Long
dwForwardNextHop As Long
dwForwardIfIndex As Long
dwForwardType As Long
dwForwardProto As Long
dwForwardAge As Long
dwForwardNextHopAS As Long
dwForwardMetric1 As Long
dwForwardMetric2 As Long
dwForwardMetric3 As Long
dwForwardMetric4 As Long
dwForwardMetric5 As Long
End Type

Private Type MIB_IPFORWARDTABLE
dwNumEntries As Long
table(0) As MIB_IPFORWARDROW
End Type

Private Declare Function GetIpForwardTable _
Lib "Iphlpapi" _
( _
pIpForwardTable As Any, _
pdwSize As Long, _
ByVal bOrder As Long _
) _
As Long

Private Function IsConnected() As Boolean
Dim TableSize As Long, IPFRows() As Long, i As Long

ReDim IPFRows(0)
GetIpForwardTable IPFRows(0), TableSize, 0

ReDim IPFRows(TableSize / 4)
If GetIpForwardTable(IPFRows(0), TableSize, 1) = ERROR_SUCCESS Then
For i = 1 To IPFRows(0) * 14 Step 14
'IPFRows(0) = MIB_IPFORWARDTABLE.dwNumEntries
If IPFRows(i) = 0 Then
'PFRows(1 + (i - 1) * 14) > ' MIB_IPFORWARDTABLE.table(nIndex).dwForwardD­est
IsConnected = True

Exit For
End If
Next i
End If
End Function

Une troisième technique fréquemment utilisée est la requête ping vers un
ou plusieurs serveurs considérés comme ayant un bon uptime pour encore un
certain temps (ce qui est une définition TRES floue..). On retrouve
fréquemment parmis ces serveurs www.google.com www.yahoo.com, ...
L'avantage (ou désavantage) est qu'il est possible alors d'indiquer qu'il
n'y a pas de connection si un pare feu les bloque toutes.
Un article à ce sujet est disponible sur la KB:
http://support.microsoft.com/?kbid00197

--
Picalausa François



Avatar
Jean-marc
"Jean Naimard" a écrit dans le message de news:
45574cc3$0$27408$
Merci pour infos de qualité
J'ai reussi à faire ce que je voulais.
J'ai utilisé le ping pour tester la connexion car l'autre methode ne
detecte que la connexion du reseau apparament.
Si vous avez un exemple avec winsock pour eviter le lancement de la
fenetre dos ce serait bien car je ne suis pas un expert.
En fait il suffit de faire:
telnet 192.168.1.1
login: root
Password: 1234
[root @ home]$: reboot

merci



Hello,

Pour un ping sans fenêtre DOS, tout est la:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B300197

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/