.NET Framework - Comment_récupérer_des_infos_du_panneau_de_conf_???

Asked By LE TROLL
15-Nov-09 03:44 PM
Bonjour,

Je voudrais en fait r?cup?rer des infos sur le PC, mais je ne sais
comment, ceelles-ci :

Panneau de conf \ centre r?seaux et partages \ connexion r?seau sans fil
\ utilisateur\ statut \ dur?e, vitesse, envoy? et re?u

Comment, avec quoi ?

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
GetIPProperties.UnicastAddresses
(1)
NetInterface.GetIPv4Statistics
(1)
NetInterface.NetworkInterfaceType
(1)
System.Environment.UserName
(1)
IPv4InterfaceStatistics
(1)
Visual Studio 2008
(1)
Management.ManagementObjectSearcher
(1)
NetworkInterfaceType.Wireless80211
(1)
  Patrice replied to LE TROLL
15-Nov-09 05:42 PM
Bonjour,

Tout ce qui concerne le r?seau est dans l'espace de noms :
http://msdn.microsoft.com/fr-fr/library/system.net.networkinformation.aspx

- utilisateur, c'est l'utilisateur courant Windows ? Cf
System.Environment.UserName, ? priori ok pour statut, vitesse, envoy? et
re?u. Je ne vois pas par contre pour la dur?e.

Par exemple comme point de d?part :

Dim Statistics As IPv4InterfaceStatistics
For Each NetInterface As NetworkInterface In
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces
If NetInterface.NetworkInterfaceType =
NetworkInterfaceType.Wireless80211 Then
Debug.WriteLine(NetInterface.Description)
Statistics = NetInterface.GetIPv4Statistics
Debug.WriteLine(String.Format("- Envoy?s : {0}, re?us :
{1}.", Statistics.BytesSent, Statistics.BytesReceived))
End If
Next

--
Patrice
  LE TROLL replied to Patrice
16-Nov-09 06:58 AM
Bonjour Patrice,

Merci, mais c'est pour moi du chinois, du chinois qui en plus ne veut
pas fonctionner, j'ai fait ?a :

' cle3Gusb form1

Option Explicit On

'Imports System.IO

Public Class Form1

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

Dim Statistics As IPv4InterfaceStatistics

For Each NetInterface As NetworkInterface In
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()

If NetInterface.NetworkInterfaceType = NetworkInterfaceType.Wireless80211
Then

TextBox1 = ""

TextBox1.Text = TextBox1.Text & NetInterface.Description & vbCrLf

Statistics = NetInterface.GetIPv4Statistics

TextBox1.Text = TextBox1.Text & Statistics.BytesSent & vbCrLf

TextBox1.Text = TextBox1.Text & Statistics.BytesReceived & vbCrLf

End If

Next

End Sub ' form1

End Class

---------------------------

---------------------------

Alors il me dits sur :

Dim Statistics As IPv4InterfaceStatistics

For Each NetInterface As NetworkInterface In S

***

IPv4InterfaceStatistics = type non d?fini

NetInterface = type non d?fini

********



Si je passe outre, l? j'ai un discours plus long :



Visual studio ne peut pas lancer le debogage, car la cible du d?bogage
'C:\Users\joe\Documents\Visual Studio 2008\cle3Gusb\bin\debug\cle3Gusb.exe
est manquante. g?n?rez le projet ou r?essayez, ou d?finissez les propri?t?s
outputPath et AssemblyName en cons?quence pour qu'elles pointent vers
lthemplacement correct de l'assembly cible.



???



Je ne comprends rien, dans la mesure ou, si je mets juste ? la place
textbox1.text = "Bonjour" ?a marche sans qu'il veuille un chemin ou un exe,
ah ???



Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
  Patrice replied to LE TROLL
16-Nov-09 07:19 AM
Donc les types ne sont pas trouv?s.

Il doit manquer le "Imports System.Net.NetworkInformation" ? mettre en t?te
du fichier source (ou alors pr?ciser le nom complet des types) ce que je
n'avais effectivement pas pens? ? pr?ciser. Voir :
http://msdn.microsoft.com/fr-fr/library/zt9tafza.aspx (Espaces de noms dans
VB) pour ce m?canisme.


Le code ne peut pas ?tre compil? donc on a pas de fichier ex?cutable ?
lancer.


Ce code ?num?re toutes les interfaces r?seaux et si elle de type WIFI
affiche dans la fen?tre de d?bogage qq unes de ses caract?ristiques...

--
Patrice
  LE TROLL replied to Patrice
16-Nov-09 03:11 PM
Patrice,

Ok ?a marche, il me manque encore 5 param?tres, voir dans le code
sous-cit? :

' cle3Gusb form1

Option Explicit On

Imports System.Net.NetworkInformation

Public Class Form1

' IL ME MANQUE 5 ELEMENTS

' - ?tat connexion : actif ou inactif (pour calcul dur,e)

' - adresse IP local PC

' - nom utilisteur PC

' - SSID nom r,seau wifi

' - Vitesse de d,bit

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

Dim Statistics As IPv4InterfaceStatistics

Dim t(9) As String

Dim p(9)

For Each NetInterface As NetworkInterface In
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()

If NetInterface.NetworkInterfaceType = NetworkInterfaceType.Wireless80211
Then

p(1) = NetInterface.Description

t(1) = "Interface : " & p(1) & vbCrLf

Statistics = NetInterface.GetIPv4Statistics

p(2) = System.Math.Round(Statistics.BytesSent / 1048576, 2)

t(2) = "Sortants : " & p(2) & " Mo" & vbCrLf

p(3) = Math.Round(Statistics.BytesReceived / 1048576, 2)

t(3) = "Entrants : " & p(3) & " Mo" & vbCrLf

p(4) = Math.Round(p(2) + p(3), 2)

t(4) = "Total IO : " & p(4) & " Mo" & vbCrLf

End If

Next

TextBox1.Text = t(1) & t(4)

TextBox1.Refresh()

End Sub ' form1

End Class


Si tu peux y faire quelque chose, merci, cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
  LE TROLL replied to Patrice
16-Nov-09 03:12 PM
Patrice,

Ok ?a marche, il me manque encore 5 param?tres, voir dans le code
sous-cit? :

' cle3Gusb form1

Option Explicit On

Imports System.Net.NetworkInformation

Public Class Form1

' IL ME MANQUE 5 ELEMENTS

' - ?tat connexion : actif ou inactif (pour calcul dur,e)

' - adresse IP local PC

' - nom utilisteur PC

' - SSID nom r,seau wifi

' - Vitesse de d,bit

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

Dim Statistics As IPv4InterfaceStatistics

Dim t(9) As String

Dim p(9)

For Each NetInterface As NetworkInterface In
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()

If NetInterface.NetworkInterfaceType = NetworkInterfaceType.Wireless80211
Then

p(1) = NetInterface.Description

t(1) = "Interface : " & p(1) & vbCrLf

Statistics = NetInterface.GetIPv4Statistics

p(2) = System.Math.Round(Statistics.BytesSent / 1048576, 2)

t(2) = "Sortants : " & p(2) & " Mo" & vbCrLf

p(3) = Math.Round(Statistics.BytesReceived / 1048576, 2)

t(3) = "Entrants : " & p(3) & " Mo" & vbCrLf

p(4) = Math.Round(p(2) + p(3), 2)

t(4) = "Total IO : " & p(4) & " Mo" & vbCrLf

End If

Next

TextBox1.Text = t(1) & t(4)

TextBox1.Refresh()

End Sub ' form1

End Class


Si tu peux y faire quelque chose, merci, cordialement ;o)



--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
  Patrice replied to LE TROLL
18-Nov-09 07:36 AM
Bonjour,

Le plus simple est sans doute d'utiliser l'explorateur d'objet pour voir les
diverses propriétés et de confirmer éventuellement avec la doc.



Par exemple pour la classe NetworkInterface je vois OperationalStatus (mais
je ne vois pas comment tu vas utiliser cela pour la durée)


Sans doute GetIPProperties.UnicastAddresses qui permet de voir les adresses
liés à cette interface réseau.


System.Environment.UserName (que j'avais indiqué précédemment)


Je ne sais pas.


Toujours pour NetworkInterface je vois une propriété Speed.

Comme je ne vois pas comment avoir la durée à partir du statut j'ai
farfouillé un peu et avec WMI on peut récuperer TimeOfLastReset. WMI serait
une autre façon de récupérer des infos de la carte réseau. Par exemple :

' WMI
Dim searcher As New Management.ManagementObjectSearcher("SELECT *
FROM win32_NetWorkAdapter")
For Each o As Management.ManagementObject In searcher.Get
For Each p As Management.PropertyData In o.Properties
Debug.WriteLine(p.Name & ", " & If(Not IsNothing(p.Value),
p.Value.ToString, "N/A"))
Next
Next

Et donc voir dans l'affichage TimeOfLastReset qui doit correspondre au
moment de la connexion.

Resterait donc le SSID toujours avec WMI et un SELECT * FROM
MSNdis_80211_ServiceSetIdentifier (je n'ai pas de réseau Wifi sur le PC que
j'utilise actuellement).

Plus généralement j'ai trouvé aussi :
http://www.codeplex.com/managedwifi
qui doit fournir un accès facile à l'AOPI native wifi de Windows.

Bon courage.

--
Patrice
Create New Account
help
Framework Hello, I get my IP Address(es) by looping through NetworkInterface.GetAllNetworkInterfaces() and adapter.GetIPProperties().UnicastAddresses This works fine! (see code snippet at the end) But what, if one or all description: Hello, I get my IP Address(es) by looping through NetworkInterface.GetAllNetworkInterfaces() and adapter.GetIPProperties().UnicastAddresses This works f
nics = NetworkInterface.GetAllNetworkInterfaces(); foreach(NetworkInterface nic in nics) { if(nic.GetPhysicalAddress().ToString().Length > 0 && nic.GetIPProperties().UnicastAddresses.Count > 0) { Console.WriteLine(nic.GetPhysicalAddress() + " " + nic.GetIPProperties().UnicastAddresses[0].Address); } } not that you can have multiple active net cards and if you have
nics = NetworkInterface.GetAllNetworkInterfaces(); foreach(NetworkInterface nic in nics) { if(nic.GetPhysicalAddress().ToString().Length > 0 && nic.GetIPProperties().UnicastAddresses.Count > 0) { Console.WriteLine(nic.GetPhysicalAddress() + " " + nic.GetIPProperties().UnicastAddresses[0].Address); } } } } } Arne Hi, Let me explain you what is IP address and MAC adress