Слој везе у случају дељених медијума разликује уређаје на основу њихових физичких 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) пројекта.