Skip to content

Приказ MAC адреса мрежних интерфејса

Слој везе у случају дељених медијума разликује уређаје на основу њихових физичких MAC (Media Access Control) адреса. Ове адресе, изворишна и одредишна, наводе се у заглављу овог слоја и односе се само на чворове унутар једне мреже. MAC адреса је јединствена физичка адреса мрежног интерфејса, односно јединствен број којим се врши идентификација интерфејса у локалној мрежи. Представља се са 48 бита тј. 6 бајтова, најчешће у хексадекадној нотацији, где су прва 24 бита додељена компанији тј. произвођачу, а следећа 24 произвођач додељује интерфејсима уређаја које производи. У Windows оперативним системима MAC адресу интерфејса можемо видети уносом команде ipconfig /all. На пример:

Microsoft Windows [Version 10.0.19044.1706]
(c) Microsoft Corporation. All rights reserved.

C:\>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : MAINFRAME
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   Physical Address. . . . . . . . . : 18-31-BF-52-BF-E8
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::f511:aeb5:50fc:7f59%9(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.0.11(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Sunday, May 29, 2022 10:02:23 AM
   Lease Expires . . . . . . . . . . : Sunday, May 29, 2022 7:32:41 PM
   Default Gateway . . . . . . . . . : 192.168.0.1
   DHCP Server . . . . . . . . . . . : 192.168.0.1
   DHCPv6 IAID . . . . . . . . . . . : 270021055
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-22-62-51-F1-18-31-BF-52-BF-E8
   DNS Servers . . . . . . . . . . . : 89.216.1.30
                                       89.216.1.50
   NetBIOS over Tcpip. . . . . . . . : Enabled

Циљ ове вежбе је креирање конзолне апликације која приказује MAC адресе свих мрежних интерфејса у рачунару (обично рачунар има макар један мрежни адаптер). За израду ове апликације користићемо класу NetworkInterface из именског простора System.Net.NetworkInformation. Код апликације је прилично једноставан и интуитиван. Читају се све информације о интерфејсима хоста и на излазу се исписује колико их има. Потом се за сваки интерфејс исписује његов опис, тип и MAC адреса. Бајтови MAC адресе исписују се у хексадекадној нотацији раздвојени двотачком.

using System;
using System.Net.NetworkInformation;

namespace MACadrese
{
    internal class Program
    {
        static void Main(string[] args)
        {
            NetworkInterface[] interfejsi = NetworkInterface.GetAllNetworkInterfaces();
            Console.WriteLine("Broj mrežnih adaptera: {0}", interfejsi.Length);
            foreach (NetworkInterface interfejs in interfejsi)
            {
                Console.WriteLine();
                Console.WriteLine(interfejs.Description);
                Console.WriteLine("Tip adaptera : {0}", interfejs.NetworkInterfaceType);
                Console.Write("MAC adresa   : ");
                PhysicalAddress macAdresa = interfejs.GetPhysicalAddress();
                byte[] bajtovi = macAdresa.GetAddressBytes();
                for (int i = 0; i < bajtovi.Length; i++)
                {
                    Console.Write("{0}", bajtovi[i].ToString("X2"));
                    if (i != bajtovi.Length - 1)
                        Console.Write(":");
                }
                Console.WriteLine();
            }
        }
    }
}

Тест пример:

Broj mreznih adaptera: 2

Realtek PCIe GBE Family Controller
Tip adaptera : Ethernet
MAC adresa   : 18:31:BF:52:BF:E8

Software Loopback Interface 1
Tip adaptera : Loopback
MAC adresa   :

* можете приметити да су излистани сви мрежни интерфејси на рачунару укључујући и Loopback интерфејс који наравно не поседује MAC адресу.

Документација

System.Net.NetworkInformation Namespace: https://docs.microsoft.com/en-us/dotnet/api/system.net.networkinformation

Домаћи задатак

Осмислите графички UI и израдите ову апликацију у виду Windows Forms (.NET Framework) пројекта.