2010-04-08 9 views
4

Dans .NET Compact Framework, un périphérique peut avoir plusieurs adresses IP. Je souhaite en trouver un qui ne provient PAS de la connexion cellulaire. L'objectif est pour la connexion WiFi ou Ethernet.Déterminer si l'adresse IP est une adresse IP cellulaire

Existe-t-il un moyen de le faire?

On dirait que State and Notification Broker aurait un moyen de le faire, mais n'a pas vu un moyen.

Répondre

5

Non, vous devrez le faire manuellement.

De toute évidence, il n'existe pas de moyen facile de savoir quelles adresses IP appartiennent à la cellule ou non. Le plus simple serait de récupérer la base de données IP "ISP" de maxmind.com - http://www.maxmind.com/app/isp - qui vous donnera le nom du fournisseur de services Internet pour toute adresse IP (enfin, la plupart des adresses IP). Vous devez ensuite configurer une expression régulière correspondant à des mots clés tels que «sprint», «verizon wireless», «cellular», etc., afin de déterminer s'il s'agit d'un IP de téléphone cellulaire ou non.

Pas la plus belle des solutions funnest mais je ne suis pas au courant d'une meilleure façon.

0

Chaque opérateur possède un groupe d'adresses IP. Si vous connaissez l'adresse réseau de l'opérateur, vous pouvez comparer l'IP du visiteur avec l'adresse de l'opérateur.

Ainsi, par exemple si vous connaissez l'opérateur mobile est propriétaire d'un groupe d'adresses IP commençant par 212.235.*.*

vous comparez 16 premiers bits de l'adresse du visiteur, si par exemple l'adresse du visiteur est 212.235.190.215 vous connaissez ça vient du réseau mobile.

Vous pouvez vérifier cette condition avec des opérations de chaîne simples - comparez les x premiers caractères de l'adresse IP du visiteur avec x caractères connus au début de l'adresse IP de l'opérateur.