GNT sans publicité, site mobile, fonctionnalitées exclusives...

Connaitre si l'ordi est connecté à Internet lorsque celui-ci passe par un proxy

Le
Bull
Bonjour,

J'avais posté un message il y a un moment pour savoir comment tester si une
machine était connectée à Internet sans passer par un ping de google par ex.

On m'avait donné le script suivant qui fonctionne très bien :
Public Class NetworkManagement

<DllImport("wininet", SetLastError:=True)> _

Private Shared Function InternetGetConnectedState _

( _

ByRef dwFlags As Int32, _

ByVal dwReserved As Int32 _

) As Boolean

'

End Function

Public Shared Function IsOnline() As Boolean

Return InternetGetConnectedState(0, 0)

End Function

Public Shared Function GetConnectionMode() As InternetConnectionMode

Dim iFlag As Int32

Dim sEnumNames() As String

Dim arEnumValues As Array

Dim t As Type

Dim i As Int32

If (InternetGetConnectedState(iFlag, 0)) Then

t = InternetConnectionMode.Modem.GetType()

sEnumNames = [Enum].GetNames(t)

arEnumValues = [Enum].GetValues(t)

For i = 0 To sEnumNames.Length - 1

If (iFlag And CType(arEnumValues.GetValue(i), String)) Then

' on a trouvé une connection

Return [Enum].Parse(t, sEnumNames(i))

End If

Next i

End If

' aucune connection

Return InternetConnectionMode.None

End Function

End Class

'***

'***

' EInternetConnectionMode.vb

Public Enum InternetConnectionMode As Integer

None = &H0

Modem = &H1 ' INTERNET_CONNECTION_MODEM

Lan = &H2 ' INTERNET_CONNECTION_LAN

Proxy = &H3 ' INTERNET_CONNECTION_PROXY

End Enum

Private Sub ping()

If NetworkManagement.IsOnline() Then

connected = True

Else

StatusBarPanel.Text = langueINI.ReadString("StatusBar", "ConnectionFailure")

connected = False

End If

End Sub



Mon problème maintenant est que lorsque l'ordi dont il faut tester la
connexion Internet passe par un proxy, ce code donne tjs connected = False.

J'aimerais donc savoir s'il existe un moyen similaire de tester si le pc est
connecté à internet via un proxy (sans avoir bien sûr à pinguer un site).

Merci d'avance,
Bull
Lire les 6 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AlexC
Le #12543791
Salut,

Un exemple tout fait est donné dans MSDN :

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003...ternet.htm

:)

"Bull"
Bonjour,

J'avais posté un message il y a un moment pour savoir comment tester si
une machine était connectée à Internet sans passer par un ping de google
par ex.

On m'avait donné le script suivant qui fonctionne très bien :
Public Class NetworkManagement

<DllImport("wininet", SetLastError:=True)> _

Private Shared Function InternetGetConnectedState _

( _

ByRef dwFlags As Int32, _

ByVal dwReserved As Int32 _

) As Boolean

'

End Function

Public Shared Function IsOnline() As Boolean

Return InternetGetConnectedState(0, 0)

End Function

Public Shared Function GetConnectionMode() As InternetConnectionMode

Dim iFlag As Int32

Dim sEnumNames() As String

Dim arEnumValues As Array

Dim t As Type

Dim i As Int32

If (InternetGetConnectedState(iFlag, 0)) Then

t = InternetConnectionMode.Modem.GetType()

sEnumNames = [Enum].GetNames(t)

arEnumValues = [Enum].GetValues(t)

For i = 0 To sEnumNames.Length - 1

If (iFlag And CType(arEnumValues.GetValue(i), String)) Then

' on a trouvé une connection

Return [Enum].Parse(t, sEnumNames(i))

End If

Next i

End If

' aucune connection ...

Return InternetConnectionMode.None

End Function

End Class

'***

'***

' EInternetConnectionMode.vb

Public Enum InternetConnectionMode As Integer

None = &H0

Modem = &H1 ' INTERNET_CONNECTION_MODEM

Lan = &H2 ' INTERNET_CONNECTION_LAN

Proxy = &H3 ' INTERNET_CONNECTION_PROXY

End Enum

Private Sub ping()

If NetworkManagement.IsOnline() Then

connected = True

Else

StatusBarPanel.Text = langueINI.ReadString("StatusBar",
"ConnectionFailure")

connected = False

End If

End Sub



Mon problème maintenant est que lorsque l'ordi dont il faut tester la
connexion Internet passe par un proxy, ce code donne tjs connected =
False.

J'aimerais donc savoir s'il existe un moyen similaire de tester si le pc
est connecté à internet via un proxy (sans avoir bien sûr à pinguer un
site...).

Merci d'avance,
Bull



Bull
Le #12543691
Oui mais ce script fait justement un ping d'un site pour tester, or je
voudrais essayer d'éviter cela si possible. Une idée ? :)

"AlexC" message de news:
Salut,

Un exemple tout fait est donné dans MSDN :

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003...ternet.htm

:)

"Bull"
Bonjour,

J'avais posté un message il y a un moment pour savoir comment tester si
une machine était connectée à Internet sans passer par un ping de google
par ex.

On m'avait donné le script suivant qui fonctionne très bien :
Public Class NetworkManagement

<DllImport("wininet", SetLastError:=True)> _

Private Shared Function InternetGetConnectedState _

( _

ByRef dwFlags As Int32, _

ByVal dwReserved As Int32 _

) As Boolean

'

End Function

Public Shared Function IsOnline() As Boolean

Return InternetGetConnectedState(0, 0)

End Function

Public Shared Function GetConnectionMode() As InternetConnectionMode

Dim iFlag As Int32

Dim sEnumNames() As String

Dim arEnumValues As Array

Dim t As Type

Dim i As Int32

If (InternetGetConnectedState(iFlag, 0)) Then

t = InternetConnectionMode.Modem.GetType()

sEnumNames = [Enum].GetNames(t)

arEnumValues = [Enum].GetValues(t)

For i = 0 To sEnumNames.Length - 1

If (iFlag And CType(arEnumValues.GetValue(i), String)) Then

' on a trouvé une connection

Return [Enum].Parse(t, sEnumNames(i))

End If

Next i

End If

' aucune connection ...

Return InternetConnectionMode.None

End Function

End Class

'***

'***

' EInternetConnectionMode.vb

Public Enum InternetConnectionMode As Integer

None = &H0

Modem = &H1 ' INTERNET_CONNECTION_MODEM

Lan = &H2 ' INTERNET_CONNECTION_LAN

Proxy = &H3 ' INTERNET_CONNECTION_PROXY

End Enum

Private Sub ping()

If NetworkManagement.IsOnline() Then

connected = True

Else

StatusBarPanel.Text = langueINI.ReadString("StatusBar",
"ConnectionFailure")

connected = False

End If

End Sub



Mon problème maintenant est que lorsque l'ordi dont il faut tester la
connexion Internet passe par un proxy, ce code donne tjs connected =
False.

J'aimerais donc savoir s'il existe un moyen similaire de tester si le pc
est connecté à internet via un proxy (sans avoir bien sûr à pinguer un
site...).

Merci d'avance,
Bull







AlexC
Le #12543681
ben tu essayes d'afficher la page d'un site web si il y a une erreur tu es
connecté sinon ben non ;)

"Bull" news:
Oui mais ce script fait justement un ping d'un site pour tester, or je
voudrais essayer d'éviter cela si possible. Une idée ? :)

"AlexC" message de news:
> Salut,
>
> Un exemple tout fait est donné dans MSDN :
>
>


ms-help://MS.VSCC.2003/MS.MSDNQTR.2003...kCodeExamp
leDeterminingIfComputerIsConnectedToInternet.htm
>
> :)
>
> "Bull" >
>> Bonjour,
>>
>> J'avais posté un message il y a un moment pour savoir comment tester si
>> une machine était connectée à Internet sans passer par un ping de


google
>> par ex.
>>
>> On m'avait donné le script suivant qui fonctionne très bien :
>> Public Class NetworkManagement
>>
>> <DllImport("wininet", SetLastError:=True)> _
>>
>> Private Shared Function InternetGetConnectedState _
>>
>> ( _
>>
>> ByRef dwFlags As Int32, _
>>
>> ByVal dwReserved As Int32 _
>>
>> ) As Boolean
>>
>> '
>>
>> End Function
>>
>> Public Shared Function IsOnline() As Boolean
>>
>> Return InternetGetConnectedState(0, 0)
>>
>> End Function
>>
>> Public Shared Function GetConnectionMode() As InternetConnectionMode
>>
>> Dim iFlag As Int32
>>
>> Dim sEnumNames() As String
>>
>> Dim arEnumValues As Array
>>
>> Dim t As Type
>>
>> Dim i As Int32
>>
>> If (InternetGetConnectedState(iFlag, 0)) Then
>>
>> t = InternetConnectionMode.Modem.GetType()
>>
>> sEnumNames = [Enum].GetNames(t)
>>
>> arEnumValues = [Enum].GetValues(t)
>>
>> For i = 0 To sEnumNames.Length - 1
>>
>> If (iFlag And CType(arEnumValues.GetValue(i), String)) Then
>>
>> ' on a trouvé une connection
>>
>> Return [Enum].Parse(t, sEnumNames(i))
>>
>> End If
>>
>> Next i
>>
>> End If
>>
>> ' aucune connection ...
>>
>> Return InternetConnectionMode.None
>>
>> End Function
>>
>> End Class
>>
>> '***
>>
>> '***
>>
>> ' EInternetConnectionMode.vb
>>
>> Public Enum InternetConnectionMode As Integer
>>
>> None = &H0
>>
>> Modem = &H1 ' INTERNET_CONNECTION_MODEM
>>
>> Lan = &H2 ' INTERNET_CONNECTION_LAN
>>
>> Proxy = &H3 ' INTERNET_CONNECTION_PROXY
>>
>> End Enum
>>
>> Private Sub ping()
>>
>> If NetworkManagement.IsOnline() Then
>>
>> connected = True
>>
>> Else
>>
>> StatusBarPanel.Text = langueINI.ReadString("StatusBar",
>> "ConnectionFailure")
>>
>> connected = False
>>
>> End If
>>
>> End Sub
>>
>>
>>
>> Mon problème maintenant est que lorsque l'ordi dont il faut tester la
>> connexion Internet passe par un proxy, ce code donne tjs connected > >> False.
>>
>> J'aimerais donc savoir s'il existe un moyen similaire de tester si le


pc
>> est connecté à internet via un proxy (sans avoir bien sûr à pinguer un
>> site...).
>>
>> Merci d'avance,
>> Bull
>>
>
>




Bull
Le #12543671
Bah ça revient un peu au même que de faire un ping ça surcharge un serveur
web pour rien ;-)

Bon pas grave, vais me débrouiller
merci :)

"AlexC" message de news:
ben tu essayes d'afficher la page d'un site web si il y a une erreur tu es
connecté sinon ben non ;)

"Bull" news:
Oui mais ce script fait justement un ping d'un site pour tester, or je
voudrais essayer d'éviter cela si possible. Une idée ? :)

"AlexC" message de news:
> Salut,
>
> Un exemple tout fait est donné dans MSDN :
>
>


ms-help://MS.VSCC.2003/MS.MSDNQTR.2003...kCodeExamp
leDeterminingIfComputerIsConnectedToInternet.htm
>
> :)
>
> "Bull" >
>> Bonjour,
>>
>> J'avais posté un message il y a un moment pour savoir comment tester
>> si
>> une machine était connectée à Internet sans passer par un ping de


google
>> par ex.
>>
>> On m'avait donné le script suivant qui fonctionne très bien :
>> Public Class NetworkManagement
>>
>> <DllImport("wininet", SetLastError:=True)> _
>>
>> Private Shared Function InternetGetConnectedState _
>>
>> ( _
>>
>> ByRef dwFlags As Int32, _
>>
>> ByVal dwReserved As Int32 _
>>
>> ) As Boolean
>>
>> '
>>
>> End Function
>>
>> Public Shared Function IsOnline() As Boolean
>>
>> Return InternetGetConnectedState(0, 0)
>>
>> End Function
>>
>> Public Shared Function GetConnectionMode() As InternetConnectionMode
>>
>> Dim iFlag As Int32
>>
>> Dim sEnumNames() As String
>>
>> Dim arEnumValues As Array
>>
>> Dim t As Type
>>
>> Dim i As Int32
>>
>> If (InternetGetConnectedState(iFlag, 0)) Then
>>
>> t = InternetConnectionMode.Modem.GetType()
>>
>> sEnumNames = [Enum].GetNames(t)
>>
>> arEnumValues = [Enum].GetValues(t)
>>
>> For i = 0 To sEnumNames.Length - 1
>>
>> If (iFlag And CType(arEnumValues.GetValue(i), String)) Then
>>
>> ' on a trouvé une connection
>>
>> Return [Enum].Parse(t, sEnumNames(i))
>>
>> End If
>>
>> Next i
>>
>> End If
>>
>> ' aucune connection ...
>>
>> Return InternetConnectionMode.None
>>
>> End Function
>>
>> End Class
>>
>> '***
>>
>> '***
>>
>> ' EInternetConnectionMode.vb
>>
>> Public Enum InternetConnectionMode As Integer
>>
>> None = &H0
>>
>> Modem = &H1 ' INTERNET_CONNECTION_MODEM
>>
>> Lan = &H2 ' INTERNET_CONNECTION_LAN
>>
>> Proxy = &H3 ' INTERNET_CONNECTION_PROXY
>>
>> End Enum
>>
>> Private Sub ping()
>>
>> If NetworkManagement.IsOnline() Then
>>
>> connected = True
>>
>> Else
>>
>> StatusBarPanel.Text = langueINI.ReadString("StatusBar",
>> "ConnectionFailure")
>>
>> connected = False
>>
>> End If
>>
>> End Sub
>>
>>
>>
>> Mon problème maintenant est que lorsque l'ordi dont il faut tester la
>> connexion Internet passe par un proxy, ce code donne tjs connected >> >> False.
>>
>> J'aimerais donc savoir s'il existe un moyen similaire de tester si le


pc
>> est connecté à internet via un proxy (sans avoir bien sûr à pinguer un
>> site...).
>>
>> Merci d'avance,
>> Bull
>>
>
>








AlexC
Le #12543641
Surcharger ???, heu c'est un peu excessif comme terme non ? afficher une
page comme celle de google doit etre d'à peine quelques Ko ... si on faisait
une requete de 3Go là je veux bien ..
mais bon si tu trouve une autre solution je suis preneur ! :)

"Bull" news:%
Bah ça revient un peu au même que de faire un ping ça surcharge un serveur
web pour rien ;-)

Bon pas grave, vais me débrouiller
merci :)

"AlexC" message de news:
> ben tu essayes d'afficher la page d'un site web si il y a une erreur tu


es
> connecté sinon ben non ;)
>
> "Bull" > news:
>> Oui mais ce script fait justement un ping d'un site pour tester, or je
>> voudrais essayer d'éviter cela si possible. Une idée ? :)
>>
>> "AlexC"

le
>> message de news:
>> > Salut,
>> >
>> > Un exemple tout fait est donné dans MSDN :
>> >
>> >
>


ms-help://MS.VSCC.2003/MS.MSDNQTR.2003...kCodeExamp
> leDeterminingIfComputerIsConnectedToInternet.htm
>> >
>> > :)
>> >
>> > "Bull" >> >
>> >> Bonjour,
>> >>
>> >> J'avais posté un message il y a un moment pour savoir comment tester
>> >> si
>> >> une machine était connectée à Internet sans passer par un ping de
> google
>> >> par ex.
>> >>
>> >> On m'avait donné le script suivant qui fonctionne très bien :
>> >> Public Class NetworkManagement
>> >>
>> >> <DllImport("wininet", SetLastError:=True)> _
>> >>
>> >> Private Shared Function InternetGetConnectedState _
>> >>
>> >> ( _
>> >>
>> >> ByRef dwFlags As Int32, _
>> >>
>> >> ByVal dwReserved As Int32 _
>> >>
>> >> ) As Boolean
>> >>
>> >> '
>> >>
>> >> End Function
>> >>
>> >> Public Shared Function IsOnline() As Boolean
>> >>
>> >> Return InternetGetConnectedState(0, 0)
>> >>
>> >> End Function
>> >>
>> >> Public Shared Function GetConnectionMode() As InternetConnectionMode
>> >>
>> >> Dim iFlag As Int32
>> >>
>> >> Dim sEnumNames() As String
>> >>
>> >> Dim arEnumValues As Array
>> >>
>> >> Dim t As Type
>> >>
>> >> Dim i As Int32
>> >>
>> >> If (InternetGetConnectedState(iFlag, 0)) Then
>> >>
>> >> t = InternetConnectionMode.Modem.GetType()
>> >>
>> >> sEnumNames = [Enum].GetNames(t)
>> >>
>> >> arEnumValues = [Enum].GetValues(t)
>> >>
>> >> For i = 0 To sEnumNames.Length - 1
>> >>
>> >> If (iFlag And CType(arEnumValues.GetValue(i), String)) Then
>> >>
>> >> ' on a trouvé une connection
>> >>
>> >> Return [Enum].Parse(t, sEnumNames(i))
>> >>
>> >> End If
>> >>
>> >> Next i
>> >>
>> >> End If
>> >>
>> >> ' aucune connection ...
>> >>
>> >> Return InternetConnectionMode.None
>> >>
>> >> End Function
>> >>
>> >> End Class
>> >>
>> >> '***
>> >>
>> >> '***
>> >>
>> >> ' EInternetConnectionMode.vb
>> >>
>> >> Public Enum InternetConnectionMode As Integer
>> >>
>> >> None = &H0
>> >>
>> >> Modem = &H1 ' INTERNET_CONNECTION_MODEM
>> >>
>> >> Lan = &H2 ' INTERNET_CONNECTION_LAN
>> >>
>> >> Proxy = &H3 ' INTERNET_CONNECTION_PROXY
>> >>
>> >> End Enum
>> >>
>> >> Private Sub ping()
>> >>
>> >> If NetworkManagement.IsOnline() Then
>> >>
>> >> connected = True
>> >>
>> >> Else
>> >>
>> >> StatusBarPanel.Text = langueINI.ReadString("StatusBar",
>> >> "ConnectionFailure")
>> >>
>> >> connected = False
>> >>
>> >> End If
>> >>
>> >> End Sub
>> >>
>> >>
>> >>
>> >> Mon problème maintenant est que lorsque l'ordi dont il faut tester


la
>> >> connexion Internet passe par un proxy, ce code donne tjs connected > >> >> False.
>> >>
>> >> J'aimerais donc savoir s'il existe un moyen similaire de tester si


le
> pc
>> >> est connecté à internet via un proxy (sans avoir bien sûr à pinguer


un
>> >> site...).
>> >>
>> >> Merci d'avance,
>> >> Bull
>> >>
>> >
>> >
>>
>>
>
>




Publicité
Suivre les réponses
Poster une réponse
Anonyme