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

Résolu
BeberEberlue Messages postés 6 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 14 février 2012 - 14 févr. 2012 à 11:44
BeberEberlue Messages postés 6 Date d'inscription mardi 18 janvier 2011 Statut Membre 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 !

2 réponses

NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
14 févr. 2012 à 12:45
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
---
3
BeberEberlue Messages postés 6 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 14 février 2012
14 févr. 2012 à 13:01
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 !
0