Question

Est-il possible dans Win32 pour déterminer la bande passante de programmation d'une interface réseau donnée sans transférer réellement de données? Je veux seulement faire la distinction entre les différents types d'interface (par exemple dialup vs DSL vs LAN), donc un ordre de grandeur est bien, je ne ai pas besoin de mesurer réellement la bande passante.

Contexte du problème est que mon application est très bande passante faim, et je veux afficher un message d'avertissement à l'utilisateur s'ils essaient de l'exécuter sur une interface à faible bande passante, par exemple modem commuté ou d'un modem GPRS.

J'ai regardé une autre questions liées mais si possible, je voudrais éviter mesure de débit. modems GPRS en particulier peuvent avoir des limites d'utilisation et je ne veux pas manger dans l'allocation d'un utilisateur -. Je préfère détecter la mauvaise connexion d'une autre manière et pas envoyé toutes les données du tout

Je suis plus intéressé par les réponses de Win32 / C, mais toutes les idées seraient reçus avec reconnaissance.

Était-ce utile?

La solution

Vous pouvez utiliser InternetGetConnectedState pour déterminer le type de connexion (LAN / Modem / etc). Cela vous dira s'ils ont une connexion assez décente (non-modem) sans transfert de bande passante.

Malheureusement, vous ne pouvez pas vraiment bien au-delà sans connexion et le transfert de données. Il n'y a aucun moyen pour le système de connaître les limites de bande passante en dehors de sa connexion LAN - à savoir: vous pouvez vous connecter à votre passerelle sur un réseau local directement, et il peut avoir une connexion merdique au monde extérieur. En ce qui concerne votre ordinateur serait concerné, cependant, il est sur une connexion LAN à pleine vitesse ...

Autres conseils

Vous pouvez utiliser une requête WMI, il y a bien sûr les fonctions Win32 appels aussi bien, mais cette requête:

Select * from Win32_PerfFormattedData_Tcpip_NetworkInterface

Pourquoi ne pas demander à l'utilisateur? Il devrait savoir.

Votre application pourrait mettre en cache les informations pour l'adresse réseau et ne demander à nouveau si l'adresse de réseau a changé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top