У 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 адреса и маска.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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) пројекта.