Aller au contenu

JAVA / récupérer les infos de la carte Wifi


ubik

Messages recommandés

Je bosse en ce moment sur un logiciel en Java, et j'aurai besoin de récupérer certaines infos provenant de la carte Wifi:

  • SSID des réseaux détectés
  • puissance reçue de ces réseaux
  • @ IP locale de la carte
  • @ MAC de la carte

Voila il parait qu'il existe plusieurs façons de faire ça:

  • utiliser JINI pour interfacer Java avec des librairies en C
  • utiliser des trucs MSDN made in Crosoft
  • autres solutions (ORINOCCO)

Perso je cherche à être un maximum indépendant du matériel, quitte à bloquer l'utilisation du logiciel sur Windows (parce que c'est pas tout le monde qui a la bonne carte Wifi avec le bon chipset et les drivers libres) - ma machine de test est un notebook avec une carte centrino en 802.11g!!

Si quelqu'un à un site, des librairies Java, ou une expérience à me faire partager je suis preneur :D

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bon ce JWRAPI me semble très bien mais je n'ai toujours pas pu avoir les binaires: l'auteur doit donner un mot de passe par mail, mais il ne répond pas aux mails (et en cherchant sur internet, j'ai vu que je n'étais pas le seul dans ce cas...).

Si quelqu'un a les binaires, svp faites passer!

Sinon je vais tenter le coup avec l'originale WRAPI (C++) et un coup de JNI pour interfacer le C++.

Mais je me demande si c'est pas plus facile en MSDN ? Il faut quoi? Le kit .NET et tout faire en C# ??

Un coup de main svp je rame!

Lien vers le commentaire
Partager sur d’autres sites

C'est quelles infos de ta carte WiFi qui t'intéresse ???

Tu peux aussi programmer un script pour récupérer les données de la classe WMI:

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter",,48)

For Each objItem in colItems
mess= ""
mess= mess &  "AdapterType: " & objItem.AdapterType & vbCrLf
mess= mess &  "AdapterTypeId: " & objItem.AdapterTypeId & vbCrLf
mess= mess &  "AutoSense: " & objItem.AutoSense & vbCrLf
mess= mess &  "Availability: " & objItem.Availability & vbCrLf
mess= mess &  "Caption: " & objItem.Caption & vbCrLf
mess= mess &  "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode & vbCrLf
mess= mess &  "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig & vbCrLf
mess= mess &  "CreationClassName: " & objItem.CreationClassName & vbCrLf
mess= mess &  "Description: " & objItem.Description & vbCrLf
mess= mess &  "DeviceID: " & objItem.DeviceID & vbCrLf
mess= mess &  "ErrorCleared: " & objItem.ErrorCleared & vbCrLf
mess= mess &  "ErrorDescription: " & objItem.ErrorDescription & vbCrLf
mess= mess &  "Index: " & objItem.Index & vbCrLf
mess= mess &  "InstallDate: " & objItem.InstallDate & vbCrLf
mess= mess &  "Installed: " & objItem.Installed & vbCrLf
mess= mess &  "LastErrorCode: " & objItem.LastErrorCode & vbCrLf
mess= mess &  "MACAddress: " & objItem.MACAddress & vbCrLf
mess= mess &  "Manufacturer: " & objItem.Manufacturer & vbCrLf
mess= mess &  "MaxNumberControlled: " & objItem.MaxNumberControlled & vbCrLf
mess= mess &  "MaxSpeed: " & objItem.MaxSpeed & vbCrLf
mess= mess &  "Name: " & objItem.Name & vbCrLf
mess= mess &  "NetConnectionID: " & objItem.NetConnectionID & vbCrLf
mess= mess &  "NetConnectionStatus: " & objItem.NetConnectionStatus & vbCrLf
mess= mess &  "NetworkAddresses: " & objItem.NetworkAddresses & vbCrLf
mess= mess &  "PermanentAddress: " & objItem.PermanentAddress & vbCrLf
mess= mess &  "PNPDeviceID: " & objItem.PNPDeviceID & vbCrLf
mess= mess &  "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities & vbCrLf
mess= mess &  "PowerManagementSupported: " & objItem.PowerManagementSupported & vbCrLf
mess= mess &  "ProductName: " & objItem.ProductName & vbCrLf
mess= mess &  "ServiceName: " & objItem.ServiceName & vbCrLf
mess= mess &  "Speed: " & objItem.Speed & vbCrLf
mess= mess &  "Status: " & objItem.Status & vbCrLf
mess= mess &  "StatusInfo: " & objItem.StatusInfo & vbCrLf
mess= mess &  "SystemCreationClassName: " & objItem.SystemCreationClassName & vbCrLf
mess= mess &  "SystemName: " & objItem.SystemName & vbCrLf
mess= mess &  "TimeOfLastReset: " & objItem.TimeOfLastReset & vbCrLf
WScript.Echo mess 
Next

Je sais, c'est du VBScript mais le JScript n'est pas très différent...

De plus, tu peux surement lancer un *.vbs depuis un prog java mais si tu préfères la programmation en java (*.js), ca existe aussi! :reflechis:

Liens utiles:

Clic sur "Networking Device Classes"

Doc sur les scripts de MSDN

Lien vers le commentaire
Partager sur d’autres sites

Pour les infos que je recherche, CF mon 1er post.

Merci pour ton script, c'est vraiment sympa! Mais je ne sais pas si on peut accéder au genre d'infos qui m'intéresse par ce biais?

On m'a dit que je devais surtout m'orienter vers le NDIS ??

La solution qu'on trouvé certains est de prendre une version de netstumbler qui se scripte en VB, pour récupérer ces infos et les inscrire dans un fichier. Ensuite ils récuperent ces infos dans le fichier avec Java.

Mais bon on contourne un peu le problème la hein...!

Donc si des gens peuvent m'en dire un peu plus sur le NDIS et comment l'utiliser pour récupérer des infos (SSID, signal strength) sous Java, ca m'aiderait beacoup!!

Merci pour ton aide, dans tous les cas je m'intéresse aux liens que tu m'as passé...

Le MSDN étant assez nouveau pour moi (avant j'etais "write once, run everywhere" à 100%).

PS: si quelqu'un possède les fameux binaires de JWRAPIca m'interesse toujours!

Lien vers le commentaire
Partager sur d’autres sites

Suite et peut être fin...?

Pour ceux que ça intéresse, je suis finalement arrivé à la solution bidon d'utiliser netstumbler avec un script fait maison. J'ai essayé WRAPI (comme JWRAPI, mais en C++), mais bon j'ai même pas réussi à faire marcher l'engin et ca marche pas avec la dernière version de NDIS et donc avec les cartes en g.

Donc voici le ptit script VB que j'ai pondu, c'est la 1ere fois que je touche VB donc de l'indulgence siouplait (et des conseils?). Pour l'utiliser il suffit de lancer netstumbler, d'aller dans View->options->scripting et d'ouvrir ce script. L'avantage de Netstumbler, c'est qu'il est compatible avec toutes les cartes Wifi!

Ici on récupére les infos et on les met dans un fichier .txt qui sert de fichier d'échange entre netstumbler et une appli.

apnumber = 0

dim apdatas(10)

sub InitApDatas ()

For i=0 to 10
  apdatas(i)=False
Next

End Sub

sub OnScanResult (SSID,BSSID,CapFlags,Signal,Noise,LastSeen)

apdatas(apnumber)="SSID:" & SSID & " / BSSID:" & BSSID & " / CapFlags:" &  CapFlags & " / Signal:" & Signal & " / Noise :" & Noise & " / LastSeen:" & LastSeen
apnumber = apnumber + 1

End Sub

sub OnScanComplete (FoundNew,SeenBefore,LostContact,BestSNR)
dim fso, ts
set fso = CreateObject("Scripting.FileSystemObject")
set ts = fso.OpenTextFile("C:\un_repertoire\apdatas.txt", 2, True)

ts.WriteLine(Date & " " & Time)
for each x in apdatas
 if x <> False Then
 	ts.WriteLine(x)
 end If
next
ts.WriteLine("FoundNew : " & FoundNew & " / SeenBefore : " & SeenBefore & " / LostContact : " & LostContact & " / BestSNR : " & BestSNR )
ts.Close()

apnumber = 0
InitApDatas ()

End Sub

Si vous connaissez un meilleur moyen ou si vous avez les binaires de JWRAPI, je suis encore et toujours preneur!!

Lien vers le commentaire
Partager sur d’autres sites

Désolé Fafhrdius mais la philosophie d'appel des méthodes, propriétés et la syntaxe sont la même donc...

C'est pas:

Java Is Not Javascript

(RIEN de RIEN à voir ...)

:fou:

T'inquiète, je connais la différence entre un langage de script et un langage orienté interface.

Fo pas me prendre pour une bille non plus! :zarb:

De toute façon, pour mettre tout le monde d'accord, celui qui est + à l'aise avec VB script en *.vbs et celui qui est + à l'aise avec Java script en *.js, c'est pas plus compliqué que ça! :|

Lien vers le commentaire
Partager sur d’autres sites

Bon les gars je sais que le ton est léger et que vous prenez ça à la déconne, mais pour sa défense Chimayscripteur a fait un beau poste avec des liens et du code qui m'ont aidé...

Bon peut être que mot pour mot dans sa phrase c'était pas éxactement ça :francais: mais bon vu les postes précédents on pouvait se douter qu'il confond pas Java et Javascript, ni la Chimay et le Champomy :francais:

En tout cas j'espère qu'à défaut de résoudre mon problème, ces ptits postes aideront quelqu'un, un jour, qui sait ??

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...