C# obtenir l'IP d'une interface spécifique par son nom "window" - C#/.NET managed - Programmation
Marsh Posté le 22-07-2010 à 15:35:44
lo, je vais passser pour un newb.
J'avais relever la fonction GetIPProperties et la propriété UnicastAddresses, mais j'ai pas compris que UnicastAddresses c'etait les IP locals. J'ai été piégé par la ressemblance avec MulticastAddresses et AnycastAddresses. C'est la premiere fois que je vois le terme "UnicastAddresses" pour parler de l'addresse IP (ou des addreses IPs) local.
Merci pour ton aide
Marsh Posté le 22-07-2010 à 00:41:16
Bonjour,
Etant nouveau sur le forum je vais brievement me présenter. Informaticien (de base) orienté système et réseau, programmeur amateur a mes heures perdues. J'ai tout de meme quelques experiences en prog, principalement en VB, C, C#, PHP. Ces derniers temps, je fais du XNA. Et également depuis ce soir un petit outil tout bête qui doit servir à mettre a jour une IP dynamique auprès du service No-IP, en C# ou VB.Net.
Le cas :
1 serveur win2003 qui fait office de DNS public, et avec 3 interfaces réseaux. 2 WAN - 1 LAN (donc aussi "routeur" ). Les 2 IP WAN sont dynamiques.
Le probleme
2 host gratuit chez No-IP a mettre a jour (underinet-ns1.no-ip.org et underinet-ns2.no-ip.org). underinet-ns1 est mis a jour avec le client de No-IP. Mais je doit aussi mettre a jour l'autre pour que mon gestionnaire de nom de domaine arrete de me notifier qu'il me manque 1 DNS (vu que seul 1 host répond).
Rem : ne vous posez pas trop de questions par rapport au serveur, c'est dans mon réseau perso qui ressemble plus a une experience qu'a un réseau professionnel, mais ca tourne nickel chrome (pour les curieux http://www.underinet.ch/ddns.htm )
J'ai donc chercher tout d'abord a mettre a jour underinet-ns2 a travers une "bidouille système" pour permettre au client No-IP de tourner 2x sur le serveur. J'ai forcer l'ajout d'un second service, en prenant soin de deboubler toutes les references que le service No-IP a, puis créer 2 utilisateurs admin locaux distinct et assigner a chaque service. Impossible de faire tourner le client en //. Il n'y a qu'une instance qui tourne ( )
J'ai donc chercher a bidouiller le réseau, avec un switch Dlink qui met a jour l'IP directement. Sauf que je suis obliger de lui assigné l'IP WAN , ce qui me fout en l'air ma connexion redondante (ce qui est TOTALEMENT inacceptable, y a pas moyen que je puisse pas streamer mes MP3 au boulot ).
Donc j'ai chercher a voir si No-IP fournissait qqch. Et bien oui, heureusement . Ils ont un serveur qui permet de mettre a jour l'IP a partir d'une requete HTTP GET. Mais je doit obtenir l'IP qui est assigné a mon interface de secoure et la transmettre dans l'URL.
En me lancant dans C#, j'ai vite rencontrer des problemes pour obtenir l'IP. Je peut utiliser le nom DNS local (qui s'applique a la machine) et j'obtient toutes les IPs actives, ce qui m'est totalement inutile puisque 2 de ses IP sont dynamiques, donc impossible a discriminer. J'ai chercher, et trouver, comment obtenir une interface précise en faisant
Sauf que de cette maniere, je ne peux pas retrouver l'IP assigné à la carte. L'objet wifi expose des méthodes pour obtenir certains parametres, mais pas l'IP (ou alors j'ai pas compris un truc).
J'ai également trouver des infos concernant WMI, mais je ne connais absolument pas le langage de requete (mes premiers essais avec WMICodeCreator n'ont pas été fructueux). Et ca me parait un peu abuser de devoir comprendre et apprendre WMI juste pour une IP. Il y a une alternative, c'est de ne pas specifier l'IP dans l'URL de mise a jour, mais alors il faut que je definisse par quelle interface la requete HTTP doit etre transmise. Ce qui me parait nettement plus compliquer, et de plus pas du tout redondant (vu que l'interface est fixée, je ne bénéficie pas de la passerelle dynamique, donc limite mais acceptable).
Je me dit qu'il y a surement des personnes qui seront capable de m'aider a trouver comment la récuperer. Et qui seront pt-etre interessé par la problématique plus général de mon cas (meme si ce n'est pas de la prog).
Merci d'avance a tous ceux qui prendront le temps de me lire.
Message édité par uinetpropane le 22-07-2010 à 00:54:23