Obtention adresse IP - la référence d'un objet n'est pas définie à une instance [Résolu]

Messages postés
6
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
14 février 2012
- - Dernière réponse : BeberEberlue
Messages postés
6
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
14 février 2012
- 14 févr. 2012 à 13:01
Bonjour à tous et à toutes !

Comme dit dans le titre, lorsque j'essaye d'obtenir l'adresse IP d'un ordinateur, j'obtiens le message suivant lors du fonctionnement :
"la référence d'un objet n'est pas définie à une instance d'un objet".

Avant d'aller plus loin, je tiens à préciser que je n'obtiens pas ce message sur mon ordinateur, mais sur les autres. Ces derniers ont bien sûr le .Net Framework 4 Client Profile, avec lequel je développe.

J'ai réussi à trouver la cause
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces(); // obtention de toutes les adresses IP

NetworkInterface wifi interfaces.SingleOrDefault(i> i.Name == "Wireless Network Connection"); // adresse du Wifi
NetworkInterface lan interfaces.SingleOrDefault(i> i.Name == "Local Area Connection"); // addresse du LAN

// Wifi activé && LAN désactivé
if (wifi.OperationalStatus OperationalStatus.Up && lan.OperationalStatus OperationalStatus.Down) // ERREUR
{
    var ip_address = wifi.GetIPProperties().UnicastAddresses[1].Address;
    MessageBox.Show(language.ServerIP + ip_address.ToString());
}
// Wifi désactivé && LAN activé
else if (wifi.OperationalStatus OperationalStatus.Down && lan.OperationalStatus OperationalStatus.Up) // ERREUR
{
    var ip_address = lan.GetIPProperties().UnicastAddresses[1].Address;
    MessageBox.Show(language.ServerIP + ip_address.ToString());
}
// Wifi activé && LAN activé
else if (wifi.OperationalStatus OperationalStatus.Up && lan.OperationalStatus OperationalStatus.Up) // ERREUR
{
    var ip_address = lan.GetIPProperties().UnicastAddresses[1].Address;
    MessageBox.Show(language.ServerIP + ip_address.ToString());
}



mais je ne sais toujours pas pourquoi ça fait planter l'appli :(

J'en appelle donc à votre savoir !

Par avance, merci !
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14322
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
14 décembre 2018
3
Merci
Bonjour,

NetworkInterface wifi interfaces.SingleOrDefault(i> i.Name == "Wireless Network Connection"); // adresse du Wifi
NetworkInterface lan interfaces.SingleOrDefault(i> i.Name == "Local Area Connection"); // addresse du LAN

Puis
if (wifi.OperationalStatus OperationalStatus.Up && lan.OperationalStatus OperationalStatus.Down) // ERREUR

Et si tu n'as pas de carte WIFI sous ce nom, wifi est null, et donc ...
A toi de contrôler cela.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de NHenry
Messages postés
6
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
14 février 2012
0
Merci
Okéééééééé

Je viens de comprendre !! En fait, la traduction n'est pas faite (mon ordi est en anglais, et les autres en francais)

Bon, ba, merci beaucoup !
Commenter la réponse de BeberEberlue

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.