У Windows оперативним системима IPv4 адресу интерфејса можемо видети уносом команде 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
Циљ ове вежбе је креирање конзолне апликације која приказује IPv4 адресе свих мрежних интерфејса у рачунару (обично рачунар има макар један мрежни адаптер). За израду ове апликације користићемо класу NetworkInterface
из именског простора System.Net.NetworkInformation
, као и енумерације из именског простора System.Net.Sockets
. Код апликације је прилично једноставан и интуитиван. Читају се све информације о интерфејсима хоста и на излазу се исписује колико их има. Потом се за сваки интерфејс исписује његов опис, тип, IPv4 адреса и маска.
using System;
using System.Net.NetworkInformation;
using System.Net.Sockets;
namespace IPadrese
{
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("IP adresa : ");
foreach (UnicastIPAddressInformation ipAdresa in interfejs.GetIPProperties().UnicastAddresses)
if (ipAdresa.Address.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine("{0} / {1}", ipAdresa.Address, ipAdresa.IPv4Mask);
Console.WriteLine();
}
}
}
}
Тест пример
Broj mreznih adaptera: 2
Realtek PCIe GBE Family Controller
Tip adaptera : Ethernet
IP adresa : 192.168.0.11 / 255.255.255.0
Software Loopback Interface 1
Tip adaptera : Loopback
IP adresa : 127.0.0.1 / 255.0.0.0
*можете приметити да су излистани сви мрежни интерфејси на рачунару укључујући и Loopback интерфејс чија је IPv4 адреса 127.0.0.1/8.
Документација
System.Net Namespace: https://learn.microsoft.com/en-us/dotnet/api/system.net
System.Net.Sockets Namespace: https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets
Домаћи задатак
Осмислите графички UI и израдите ову апликацију у виду Windows Forms (.NET Framework) пројекта.