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

Lire la carte réseau, suite ?

13 réponses
Avatar
LE TROLL
Bonjour,

Débutant vbNet, je cherche des informations réseau, sur lesquelles je ne
connais absolument rien.
A force de demander (sur presqu'un mois quand même), j'ai pu en obtenir
quelques-unes (qui peuvent sans doute être améliorées), soit :

- la connexion
- le nom du PC
- l'adresse IP principale
- le trafic
- la vitesse.

Il me manque 3 informations qui sont :
- la durée (peut se calculer à la rigueur)
- SSID wifi (nom utilisateur wifi)
- qualité de réception (0 à 5)

En fin de compte, tout ça se trouve en cliquant sur l'icône réseau du
systray (ou panneau de configuration), puis centre de réseaux et partages,
puis "voir le statut".

A ce lien, on trouvera un exemple de code vbNet qui permettrait de compléter
ce qu'il me manque, si j'y comprenais quelque chose, c'est ici :

http://mesromans.free.fr/wifivbnet.zip

Notons dans un autre registre, qu'il y a aussi l'api wLanApi.dll qui fait ce
que je cherche, mais c'est encore plus compliqué !

Et voici le code que j'ai actuellement en vbNet, des fonctions sus-citées
que je possède désormais. Ce code comme je le disais est sans doute aussi à
améliorer, mais je n'en ai pas le savoir. Par exemple, parfois je fais une
boucle each, et je récupère seulement l'information du premier passage, ce
qui me convient, mais pourquoi c'est la première information qui est la
bonne (IP par exemple), je n'en sais rien, et je ne sais pas davantage non
plus si ceci va fonctionner dans tous les cas, je constate simplement qu'à
défaut de connaître la chose, et bien ça tourne...
Voici mon code vbNet (compilation d'informations fournies un peu partout :

---



' cle3Gusb form1
Option Explicit On
Imports System.Net.NetworkInformation
Imports System.Net
Imports System.Math
' IL ME MANQUE : durée, SSID wifi, qualité de réception
Public Class Form1
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim Statistics As IPv4InterfaceStatistics
Dim varHostEntry As IPHostEntry
Dim t1
Dim p1 As Double
Dim p2 As Double
'
TextBox1.Text = ""
t1 = ""
'
' connexion
If My.Computer.Network.IsAvailable Then TextBox1.Text = TextBox1.Text &
"Etat : Connecté" & vbCrLf
If Not My.Computer.Network.IsAvailable Then TextBox1.Text =
TextBox1.Text & "Etat : Déconnecté" & vbCrLf
'
TextBox1.Text = TextBox1.Text & "Computer : " & Environment.UserName &
vbCrLf
'
' IP
varHostEntry = Dns.GetHostByName(System.Net.Dns.GetHostName.ToString)
For Each varAnAddress In varHostEntry.AddressList
t1 = varAnAddress.ToString
Next
TextBox1.Text = TextBox1.Text & "Adr I.P : " & t1 & vbCrLf
'
' Trafic
For Each NetInterface As NetworkInterface In
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
If NetInterface.NetworkInterfaceType =
NetworkInterfaceType.Wireless80211 Then
Statistics = NetInterface.GetIPv4Statistics
p1 = System.Math.Round(Statistics.BytesSent / 1048576, 2)
p2 = Round(Statistics.BytesReceived / 1048576, 2)
TextBox1.Text = TextBox1.Text & "Trafic : " & Format(Round(p1 +
p2, 3), "# ##0.000") & " Mo" & vbCrLf
End If
Next
'
' vitesse
Dim MonInterface As System.Net.NetworkInformation.NetworkInterface
For Each MonInterface In
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
TextBox1.Text = TextBox1.Text & "Vitesse : " &
MonInterface.Speed.ToString \ 1048576 & " Mo/s" & vbCrLf
Exit For
Next
End Sub ' form1
End Class


' MANQUE

'- la durée (peut se calculer à la rigueur)
'- SSID wifi (nom utilisateur wifi)
'- qualité de réception (0 à 5)
-----

En vous remerciant, très cordialement.

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.

3 réponses

1 2
Avatar
Patrice
> Il doit y avoir des quiproquos, car le zip que j'ai mi est celui d'un
code ramassé sur le Net, en vbNet, venant d'une source C# je crois, or ce
programme (si on peut appeler ça ainsi, car inachevé), affiche déjà la
qualité et le pseudonymeWifi, donc je ne comprends pas ?



J'ai cru comprendre que tu ne voyais pas comment ce programme récupérait la
qualité et le SSID que ce programme affiche, donc j'avais rajouté dans le
form_load le code permettant de récupérer juste ces deux informations.

Ce code ne me plait pas trop car il mélange l'interface utilisateur (le
formulaire) et la bibliothèque wifi elle-mmême donc il y aurait du nettoyage
et de la réorganisation à faire.

Je suis reparti du projet http://www.codeplex.com/managedwifi que j'ai
ouvert avec VC# 2008 Express et que j'ai compilé en mode release et qui est
une "vraie" bibliothèque (si tu ne veux pas utiliser un DLL tu peux repartir
du code VB que tu as fourni mais il y aura sans doute un peu de nettoyage à
faire).

J'ai réintégré le code que tu as indiqué dans ton message précédent dans un
projet ce qui me donne pour l'instant :

http://cid-fee4c77e201ea2cc.skydrive.live.com/browse.aspx/Public

Je pense que le mieux est de tester tes nouvelles pistes dans un projet
simp;le de ce type. Puis d'incorporer chaqyue nouveau point validé dans ton
code réel. Cela évitera de mélanger les divers problèmes que tu peux avoir
les uns avec les autres...

--
Patrice
Avatar
LE TROLL
Patrice,

Je suis exactement de ton avis sur tout, moi non plus je n'aime pas ce
programme brouillon qui s'étale inutilement, ni cette myriade de code à n'en
plus finir...

Si tu penses pouvoir le nettoyer, moi je veux juste une form1 + un
textbox1.multilines (le reste je m'en arrange), or je suis totalement
incompétent dans ce fatras, ipv4 pour moi ça peut être une tablette de
chocolat ou un nouvel avion à réaction, je ne connais absolument rien aux
réseaux, et je ne vais pas apprendre juste pour faire une application qui
donne même pas 10 lignes de résultats, d'autant que la syntaxe vbNet est
trois fois plus volumineuse et deux fois plus complexe que celle de vb6, et
que je débute en vbNet...

Déjà je te remercie énormément de ta gentillesse et je loue ta
compétence en la matière.

Ce fil commençant à être une sorte de discussion privée, je te propose
que l'on passe en mail perso, et ensuite on collera le code final ici pour
les autres.

Tu peux trouver mon email via mon site sous-cité, sinon c'est
montmartre7518 arobase free point fr, si tu veux bien m'écrire pour amorcer
tout ça ?

Je te remercie encore énormément :o)

Amicalement.

Joe.

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news:uGcjC%
Il doit y avoir des quiproquos, car le zip que j'ai mi est celui d'un
code ramassé sur le Net, en vbNet, venant d'une source C# je crois, or ce
programme (si on peut appeler ça ainsi, car inachevé), affiche déjà la
qualité et le pseudonymeWifi, donc je ne comprends pas ?



J'ai cru comprendre que tu ne voyais pas comment ce programme récupérait
la qualité et le SSID que ce programme affiche, donc j'avais rajouté dans
le form_load le code permettant de récupérer juste ces deux informations.

Ce code ne me plait pas trop car il mélange l'interface utilisateur (le
formulaire) et la bibliothèque wifi elle-mmême donc il y aurait du
nettoyage et de la réorganisation à faire.

Je suis reparti du projet http://www.codeplex.com/managedwifi que j'ai
ouvert avec VC# 2008 Express et que j'ai compilé en mode release et qui
est une "vraie" bibliothèque (si tu ne veux pas utiliser un DLL tu peux
repartir du code VB que tu as fourni mais il y aura sans doute un peu de
nettoyage à faire).

J'ai réintégré le code que tu as indiqué dans ton message précédent dans
un projet ce qui me donne pour l'instant :

http://cid-fee4c77e201ea2cc.skydrive.live.com/browse.aspx/Public

Je pense que le mieux est de tester tes nouvelles pistes dans un projet
simp;le de ce type. Puis d'incorporer chaqyue nouveau point validé dans
ton code réel. Cela évitera de mélanger les divers problèmes que tu peux
avoir les uns avec les autres...

--
Patrice




Avatar
LE TROLL
Bonjour,

Bon...

Alors... juste pour dire que ce que tu m'as passé comme code, fonctionne
très bien dans le load :

Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load

Dim client As New WlanClient

TextBox1.Text = "" ' Pour toutes les cartes Wifi...

For Each Int As WlanClient.WlanInterface In client.Interfaces ' ...connect,e

If Int.InterfaceState = Wlan.WlanInterfaceState.Connected Then

Dim strSSID As String = ""

Dim SSID As Wlan.Dot11Ssid =
Int.CurrentConnection.wlanAssociationAttributes.dot11Ssid

For i As Integer = 0 To SSID.SSIDLength - 1

strSSID &= Chr(SSID.SSID(i))

Next

TextBox1.Text = TextBox1.Text & strSSID & vbCrLf

TextBox1.Text = TextBox1.Text &
Int.CurrentConnection.wlanAssociationAttributes.wlanSignalQuality & vbCrLf

End If

Next

End Sub


Je vais essayer de nettoyer...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news:uGcjC%
Il doit y avoir des quiproquos, car le zip que j'ai mi est celui d'un
code ramassé sur le Net, en vbNet, venant d'une source C# je crois, or ce
programme (si on peut appeler ça ainsi, car inachevé), affiche déjà la
qualité et le pseudonymeWifi, donc je ne comprends pas ?



J'ai cru comprendre que tu ne voyais pas comment ce programme récupérait
la qualité et le SSID que ce programme affiche, donc j'avais rajouté dans
le form_load le code permettant de récupérer juste ces deux informations.

Ce code ne me plait pas trop car il mélange l'interface utilisateur (le
formulaire) et la bibliothèque wifi elle-mmême donc il y aurait du
nettoyage et de la réorganisation à faire.

Je suis reparti du projet http://www.codeplex.com/managedwifi que j'ai
ouvert avec VC# 2008 Express et que j'ai compilé en mode release et qui
est une "vraie" bibliothèque (si tu ne veux pas utiliser un DLL tu peux
repartir du code VB que tu as fourni mais il y aura sans doute un peu de
nettoyage à faire).

J'ai réintégré le code que tu as indiqué dans ton message précédent dans
un projet ce qui me donne pour l'instant :

http://cid-fee4c77e201ea2cc.skydrive.live.com/browse.aspx/Public

Je pense que le mieux est de tester tes nouvelles pistes dans un projet
simp;le de ce type. Puis d'incorporer chaqyue nouveau point validé dans
ton code réel. Cela évitera de mélanger les divers problèmes que tu peux
avoir les uns avec les autres...

--
Patrice




1 2