IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Vitesse de connexion maximum théorique de la carte réseau local


Sujet :

Développement Web en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Business Process Analyst
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Business Process Analyst
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Par défaut Vitesse de connexion maximum théorique de la carte réseau local
    Bonjour à tous,

    J'ai développé un petit script VBA qui m'affiche la vitesse de connexion maximum théorique de la carte réseau local d'un ordinateur. Il me donne également la référence de la carte réseau de ce dernier.

    J'aurais voulu transposer cela côté web et j'ai pensé au JAVA. Est-ce que quelqu'un sait si c'est possible ?

    Pour info, voici le script et son résultat en pièce jointe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    strComputer = "."
    Dim objWMIService: Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Dim colItems1: Set colItems1 = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2")
    Dim ObjWMI: Set ObjWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
    Dim colItems: Set colItems = ObjWMI.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True") 
    Dim adapterCFG 
    For Each objItem in colItems1
       strMACAddress = objItem.MACAddress
       If objItem.Speed >= 1000000000 Then 
          strSpeedG = objItem.Speed / 1000000000
          valSpeedG = " Gb/s"
       Else
          strSpeedM = objItem.Speed / 1000000
          valSpeedM = " Mb/s"
       End If
    Next
    Set colNetCard = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'")
    For Each objNetCard in colNetCard
       If objNetCard.MACAddress = strMACAddress Then
          For Each strIPAddress in objNetCard.IPAddress
             If InStr(strIPAddress,".") Then
                For each adapterCFG in colitems
    			 If strSpeedG >= 1 Then wscript.echo "Votre ordinateur permet une vitesse maximale de " & strSpeedG & valSpeedG & VBCRLF & "Votre carte carte reseau : " & adapterCFG.Caption Else wscript.echo "Votre ordinateur permet une vitesse maximale de " & strSpeedM & valSpeedM & VBCRLF & "Votre carte carte reseau : " & adapterCFG.Caption
    			 Next 
     
             End If
          Next
       End If
    Next
    Merci d'avance et bonne journée !
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mars 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 21
    Par défaut
    Bonjour,

    Je ne suis pas sûr de comprendre ce que tu veux dire par transposer cela côté web ?
    Peux-tu être plus précis ?

    En ce qui concerne Java et l'accès aux cartes réseau tu peux commencer par le package java.net avec notamment la classe NetworkInterface.

    Ci dessous 3 lignes de code qui affichent le nom de toutes les interfaces réseau de la machine sur laquelle la JVM est exécutée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Enumeration<NetworkInterface> ifcs = NetworkInterface.getNetworkInterfaces();
                while (ifcs.hasMoreElements()){
                    System.out.println(ifcs.nextElement().getDisplayName());
                }
    Tu peux aussi afficher leurs adresses Mac, les interfaces IP correspondantes. Néanmoins, il ne faut pas perdre de vue que Java repose quand même sur un principe de séparation du HardWare puisqu'il est exécuté au sein d'une JVM, c'est pourquoi à ma connaissance il n'y a pas d’instructions natives pour aller chercher les paramètres des cartes physiques. Tu peux toujours tricher en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("INSTRUCTION VALABLE DANS L'OS DE LA JVM");
    , mais ce n'est pas l'esprit...

    Après il y a peut-être des librairies qui récupèrent ces infos, cela vaut le coup de chercher.
    En fait ce qui serait vraiment intéressant c'est de trouver la vitesse des connexions Ethernet ou Wifi plus que la capacité des cartes qui ne prend pas en compte ce à quoi la carte est connectée et le fruit de leur négociation...

    Pierre

  3. #3
    Membre du Club
    Homme Profil pro
    Business Process Analyst
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Business Process Analyst
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Par défaut
    Salut !

    Merci pour ton retour !

    Le but ici, quand un utilisateur se plaint de sa vitesse internet lente avec un speedtest à l'appui, est de déterminer si cela ne vient pas d'une limitation physique de son matériel. La plupart des utilisateurs classiques ne sachant pas communiquer ce genre d'info, j'aimerai mettre en place une page web qui pourrait lui communiquer cela

    En tout cas merci pour le retour, j'imagine donc qu'il y a moyen de faire cela. N'ayant jamais fait de java de ma vie, je vais voir comment je peux implémenter cela Ce qui m'étonne, c'est que ça n'a jamais été implémenté dans le speedtest ookla alors que finalement, ça a son importance

    Bonne journée !

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Parce que pour détecter ce genre de chose, il faut accéder aux informations de la machine, ce que le browser interdit, faut pas déconner. Même si t'arrive a déterminer ces informations en java et à supposer que sur les interfaces tu arrive a déterminer laquelle correspond au test, ca ne résoudra pas le problème qu'il faut trouver le moyen de faire tourner cette application chez le client.

  5. #5
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mars 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 21
    Par défaut
    Oui et là je remet 10 balles de plus sur tchize_

    C'est pourquoi j'avais demandé ce que en Web voulais dire, pour pouvoir utiliser ce dont je parlais, il faut faire tourner la JVM dans l'hôte de la personne qui visite ton site Web.

    De plus si ce que tu veux faire c'est détecter sur un site Web internet si la carte de la personne qui visite ton site web est le goulot d'étranglement de sa connectivité à ton site, j'ai pas besoin de coder pour te répondre.... Cela n'a que très peu de chance d'être la carte (surtout en Ethernet).
    Si c'est en Ethernet, c'est que le PC est tellement vieux, qu'il ne pourra même pas voir ton site (cela fait longtemps que je n'ai pas vu une carte Ethernet 10Mbit/s).
    En Wifi à moins d'être coincé avec une carte 802.11b (où il n'y a que 6Mbit/s) le 802.11g offre déjà du 25Mbit/s. Tu as déjà plus de chance d'être bloqué par un manque de puissance ou de dispo des canaux que par la carte.
    Dans tout les cas les points bloquants, sont en général plus loin, candidats en vrac à faire chuter le débit:
    • Le débit entre l'utilisateur et son fournisseur d'accès (proba 1 à moins d'avoir la fibre).
    • Le débit du point d'accès du provider d'accès de l'hébergeur de ton serveur (ou plutôt la part à laquelle tu as droit)
    • la capacité entre la gateway de ton serveur et ton serveur (et surtout ce que t'en laisse les autres machines connectées elle aussi à la gateway
    • la capacité de ton serveur
    • le lien entre la machine de l'utilisateur et sa gateway (box) (d'où les résultats de la négociation entre sa carte et la carte à laquelle il se connecte), la capacité du lien (cela passe peut-être 1. en CPL, 2. sur un câble Ethernet qui est catégorie 5 (~qqes 100Mbit/s suivant la longueur) ou même pas, 3. en Wifi avec une puissance réduite ou des canaux occupés)...
    • puis la gateway de l'utilisateur sert peut-être à d'autres choses, et à d'autres trafic à faire sortir.
    • et enfin au sein de ton fournisseur d'accès et jusqu'à l'hébergeur de ton serveur, il y a peu de chance que le trafic soit traité autrement qu'en Best-Effort, donc cela peut ralentir le débit (en tout cas je n'imagine pas que 1Gbit/s par utilisateur passe sans heurts à travers les opérateurs réseau, cela demanderait une infrastructure phénoménale, et pourtant c'est ce que te permet la carte Ethernet de n'importe quel PC récent [heuh non même pas récent])


    Tout cela pour dire que je m'inquièterait pas trop du débit de la carte dans ces cas là. Dans le cas où tu voudrais faire des tests au sein d'un LAN pourquoi pas une carte 100Mbit, ou une connexion Wifi peuvent être bloquante, mais en général c'est plutôt le partage qui est bloquant que la capacité intrinsèque,
    mais dans le cas d'Internet... perso je ne suis pas convaincu de l'intérêt...


    Pour tchize, si tu veux retrouver la bonne NetworkInterface, tu peux regarder dans le header de la requête sur le serveur si tu arrives à récupérer l'adresse IP d'origine et regarder laquelle des NetworkInterface fournit cette adresse, tu peux remonter à la bonne carte.
    Après on peut tjs supposer que le site web, propose le téléchargement d'une applet/appli java qui tournera sur la machine client, mais c'est bcp plus lourd que ce que Clad avait en tête à mon avis (d'ailleurs je me suis jamais penché sur la question de comment fonctionnent les sites qui te proposent justement de faire tourner une appli sur ta JVM, ce qui n'est pas très courant d'ailleurs...)

  6. #6
    Membre du Club
    Homme Profil pro
    Business Process Analyst
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Business Process Analyst
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Par défaut
    Merci à tous pour vos réponses.

    Pour info, la limitation de vitesse liée au matériel de l'utilisateur est un usecase courant dans ma démarche, on parle effectivement de vitesse dépassant les 100mbps
    Je vais clôturer le sujet car je comprends ici que sans faire tourner le script en local, on a aucune chance d'obtenir ces infos...

    Encore merci à vous pour vos précisions et bonne journée !

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    A noter que si c'est en helpdesk, il est peut être plus simple de leur demander de lancer un script déjà existant sur l'OS et de rajouter le rapport à la demande de support.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion Postgresql [9.3] dans un réseau local windows
    Par rhinolophus dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/07/2014, 10h54
  2. Vitesse de connexion
    Par Arnaud F. dans le forum Dépannage et Assistance
    Réponses: 3
    Dernier message: 21/05/2006, 17h49
  3. Vitesse de connexion
    Par gymac dans le forum Développement
    Réponses: 2
    Dernier message: 31/03/2006, 18h23
  4. Connexion TCP/IP sans carte réseau
    Par Grand2000 dans le forum Administration
    Réponses: 16
    Dernier message: 13/01/2006, 18h21
  5. Nouvelle connexion réseau sur la même carte réseau
    Par beegees dans le forum Windows XP
    Réponses: 2
    Dernier message: 30/11/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo