Adresse Mac

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Adresse Mac

Message par ZJP » 21 Sep 2010 16:07

Et ici :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;
using System;
using System.Management;

public class MacTest : MonoBehaviour 
{
    void Start () 
    {
        ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'") ;
        ManagementObjectCollection queryCollection = query.Get();
        foreach( ManagementObject mo in queryCollection )
        {
            Console.WriteLine("Network Card: {0}", mo["Description"]);
            Console.WriteLine("MAC Address: {0}", mo["MACAddress"]);
        }
    }
}

Peut pas tester. Pas Unity installé sur cette machine :lol:

JP

Edit :
Si c'est pour du Windows standalone, une solution serait de générer un fichier TXT a partir du shell, (ipconfig /all > c:\info.txt) ouvrir ce fichier TXT sous Unity pour extraire l'information
Autre possibilité, via une DLL. La, je suis au boulot. Pas moyen de faire mieux. Désolé :?

Edit2:
Je suis persuadé que (pour Windows en tout cas) la solution passe par le WMI (Cela permet des trucs incroyables !!):
Un générateur de source de MS : http://www.microsoft.com/downloads/en/d ... laylang=en ( http://blogs.technet.com/b/askperf/arch ... eator.aspx )

Code généré par Générateur :

Code : Tout sélectionner

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_NetworkAdapterConfiguration"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_NetworkAdapterConfiguration instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("MACAddress: {0}", queryObj["MACAddress"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}

Ya plus qu'a l'adapter sous Unity3D. 8-)

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: Adresse Mac

Message par seb7000 » 21 Sep 2010 17:04

Une fois de plus merci pour votre aide.
Je vais tacher de voir ce que je peux faire, mais je débute dans cette partie de Unity, ca ne va pas être évident :twisted:

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Adresse Mac

Message par ZJP » 21 Sep 2010 21:20

Comme dit précédemment, pas de machine (Unity) pour effectuer les tests, car le portable du boulot sur lequel est installé le soft est AUSSI resté au domicile :mrgreen:
Vu le décalage horaire (GMT -4), la réponse sans doute tard dans la nuit, ou demain matin.
...ca ne va pas être évident :twisted:..
Haut les cœurs. :lol:

JP

EDIT : Vu que System.Management ne marche pas, les solutions par WMI sont impossibles. Fait c$£#& Mono :evil:

EDIT2 : La DLL System.Management.dll est pourtant présente :shock:

Avatar de l’utilisateur
Ambrosios
Messages : 149
Inscription : 07 Jan 2010 10:13

Re: Adresse Mac

Message par Ambrosios » 21 Sep 2010 23:56

Ce ne serait pas possible dans son cas de faire sa propre DLL en utilisant les fonctionnalités .NET ? C'est un peu bourrin mais il me semble que c'est ce qui est fait quand on souhaite programmer son propre code réseau.
A3G - WarGround
DevBlog

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Adresse Mac

Message par ZJP » 22 Sep 2010 01:05

Bon, vu que ton Pb m'agaçait ( :mrgreen: ), j'ai planché vite fait sur une DLL qui apporte une solution. Toutefois, il y a des limites.
a) Ne fonctionne que sous Windows Standalone
b) Renvoie une chaine de caratères avec TOUTE les cartes reseaux présentes genre
NetInfo BrutBluetooth PAN Network Adapter - Miniport d'ordonnancement de paquets (Unknown Adapter Type) with MAC Address: 00-0A-94-11-E7-14Realtek RTL8169/8110 Family Gigabit Ethernet NIC - Miniport d'ordonnancement de paquets (Unknown Adapter Type) with MAC Address: 00-24-8C-B5-95-77
Le .CS

Code : Tout sélectionner

using UnityEngine;
using System;
using System.Collections;
using System.Runtime.InteropServices;

public class NetInfo : MonoBehaviour 
{
	[DllImport ("GetNetInfoDLL.dll", EntryPoint="GetNetInfo")]   private static extern string GetNetInfo();
	void Start ()
	{
		Debug.Log ("NetInfo Brut"+GetNetInfo());
	}
}
La DLL est à placer dans le dossier Windows/System32
Fonctionne avec Unity 2.6.1 Pro et Indie. Ne MARCHE pas avec Unity 3.0 Indie. Ils ont déactivés System.Runtime.InteropServices :evil: :evil: :evil:

Ya plus qu'a faire un Instr de la chaine pour prendre tes informations. :mrgreen:
Pièces jointes
GetNetInfoDLL.zip
(10.93 Kio) Téléchargé 168 fois

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: Adresse Mac

Message par seb7000 » 23 Sep 2010 15:58

Manque de bol, c'est avec la version 3 que je vais devoir le mettre en place :evil:

En tout cas merci pour ton aide, c'est sympa ;)

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Adresse Mac

Message par ZJP » 04 Oct 2010 22:48

Salut,

Le "System.Runtime.InteropServices" est réactivé dans Unity 3 Indie. donc, ça marche 8-)

JP

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Adresse Mac

Message par ZJP » 15 Oct 2010 22:51

Alors? ;)

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: Adresse Mac

Message par seb7000 » 20 Oct 2010 16:46

Excellent !
Désolé mais je n'avais pas vu ton message.
Merci beaucoup 8-)

steph95
Messages : 1
Inscription : 07 Fév 2023 13:36

Re: Adresse Mac

Message par steph95 » 07 Fév 2023 14:26

Bjr à tous :)
Petit déterrage sur la récupération d'adresse mac sur Unity. Je
Bon je ne suis pas dev sur Unity mais dans le web. Et je dois travailler sur un projet de validation de licence, et je

Est-il tjrs possible depuis une application Unity de récupérer l'adresse mac sur d'une la tablette android? ou y-a-t-il des restrictions d'accès dû aux RGPD depuis certaines versions de l'OS?

Merci

Répondre

Revenir vers « Scripting »