Comment faire pour obtenir l'adresse MAC par programme en C# pour un périphérique Windows Mobile 6.0? Le System.Net.NetworkInformation n'est pas supporté dans, net compatc framework 3.5.Comment faire pour obtenir l'adresse MAC par programme en C# pour un périphérique Windows Mobile 6.0
Comment faire pour obtenir l'adresse MAC par programme en C# pour un périphérique Windows Mobile 6.0
Répondre
Cet article n'est pas un aperçu technique ou une grande discussion. C'est comme une collection de conseils sur la façon dont vous pouvez obtenir l'adresse IP ou le nom d'hôte d'une machine. Dans l'API Win32, cela pourrait être accompli en utilisant l'API NetWork. Et c'est toujours vrai dans le framework .NET. La seule différence est de trouver et de comprendre l'espace de noms et la classe à utiliser pour accomplir cette tâche. Dans le framework .NET, l'API NetWork est disponible dans l'espace de noms System.Net. La classe DNS dans l'espace de noms System.Net peut être utilisée pour obtenir le nom d'hôte d'une machine ou obtenir l'adresse IP si le nom d'hôte est déjà connu. La classe DNS fournit une fonctionnalité de résolution de nom de domaine simple. La classe DNS est une classe statique qui fournit un accès aux informations à partir du système DNS (Internet Domain Name System). Les informations renvoyées incluent plusieurs adresses IP et alias si l'hôte spécifié a plusieurs entrées dans la base de données DNS. La liste est renvoyée sous la forme d'une collection ou d'un tableau d'objets IPAddress. La section suivante est le code qui montre comment obtenir l'adresse IP pour un nom d'hôte donné.
namespace NKUtilities
{
using System;
using System.Net;
public class DNSUtility
{
public static int Main (string [] args)
{
String strHostName = new String ("");
if (args.Length == 0)
{
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = DNS.GetHostName();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}
// Then using host name, get the IP address list..
IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString());
}
return 0;
}
}
}
http://www.codeproject.com/Articles/854/How-To-Get-IP-Address-Of-A-Machine
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
//for each j you can get the MAC
PhysicalAddress address = nics[0].GetPhysicalAddress();
byte[] bytes = address.GetAddressBytes();
for (int i = 0; i < bytes.Length; i++)
{
// Display the physical address in hexadecimal.
Console.Write("{0}", bytes[i].ToString("X2"));
// Insert a hyphen after each byte, unless we are at the end of the
// address.
if (i != bytes.Length - 1)
{
Console.Write("-");
}
}
Selon les docs, NetworkInterface et PhysicalAddress sont pris en charge par le framework compact. – c0D3l0g1c
Comme cela: http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface_members(v=VS.90).aspx, je vois que ce n'est pas pris en charge dans un cadre compact. Je ne suis pas sûr de savoir à quels documents vous faites référence .. – Vicky
Nous pouvons utiliser MDSDK dans ce type de problèmes comme
using PsionTeklogix.Peripherals;
namespace EnumAdapters
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ArrayList pList = null;
string[] lStatistic = null;
try
{
pList = Peripherals.EnumerateAdapters();
}
catch (Exception ex)
{
MessageBox.Show("failed with\r\n" + ex.Message, "EnumerateAdapters()");
Close();
return;
}
listBox1.Items.Clear();
foreach (string AdapterName in pList)
{
try
{
listBox1.Items.Add(AdapterName + (Peripherals.IsAdapterPresent(AdapterName) ? " is present" : " is NOT present") + (Peripherals.IsWirelessAdapter(AdapterName) ? " [wireless adapter] " : ""));
lStatistic = Peripherals.GetAdapterStatistics(AdapterName); // See Note 1
foreach (string StatInfo in lStatistic)
{
if (StatInfo.StartsWith("Local MAC Address"))
{
listBox1.Items.Add("» " + StatInfo);
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Close();
return;
}
}
}
}
}
Ceci utilise une bibliothèque spécifique à l'appareil et fonctionnera donc * seulement * avec le périphérique Psion. – ctacke
Je sais que ça fait un certain temps, mais il me fallait cela et trouvé que je pouvais utiliser OpenNETCF version du code ci-dessus avec un tweak:
INetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
//for each j you can get the MAC
PhysicalAddress address = nics[0].GetPhysicalAddress();
byte[] bytes = address.GetAddressBytes();
for(int i = 0; i < bytes.Length; i++) {
// Display the physical address in hexadecimal.
Console.Write("{0}", bytes[i].ToString("X2"));
// Insert a hyphen after each byte, unless we are at the end of the address.
if(i != bytes.Length - 1) {
Console.Write("-");
}
}
ce lien semble être mort. – Sevki
Le lien ci-dessus parle d'obtenir l'adresse IP. J'ai besoin de l'adresse MAC et non de l'adresse IP. – Vicky