Imports System.Net.NetworkInformation

Module InformacjeOSieci

    Sub Main()

        If My.Computer.Network.IsAvailable Then
            Console.WriteLine("Komputer ma interfejs sieciowy.")
        End If

        ' Pobieramy nazwę komputera
        Dim HostName As String = System.Net.Dns.GetHostName()
        Console.WriteLine("Nazwa hosta: " & HostName)

        ' Pobieramy adres IP komputera.
        ' Zwróćmy uwagę, że poniższy kod w rzeczywistości pobiera
        ' pierwszy adres na liście, ponieważ zakłada, że komputerowi
        ' przypisano tylko jeden adres IP (co jest normą)
        Console.WriteLine("IP: " & System.Net.Dns.GetHostEntry(HostName).AddressList(0).ToString())

        Dim Properties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
        Dim TcpStat As TcpStatistics
        TcpStat = Properties.GetTcpIPv4Statistics()

        Console.WriteLine("Statystyka TCP/IPv4:")
        Console.WriteLine("Minimalny limit czasu transmisji... : " & _
          TcpStat.MinimumTransmissionTimeout)
        Console.WriteLine("Maksymalny limit czasu transmisji.. : " & _
          TcpStat.MaximumTransmissionTimeout)

        Console.WriteLine("Informacje o połączeniach:")
        Console.WriteLine("  Bieżące  ........................ : " & _
          TcpStat.CurrentConnections)
        Console.WriteLine("  Łącznie ......................... : " & _
          TcpStat.CumulativeConnections)
        Console.WriteLine("  Zainicjowane .................... : " & _
          TcpStat.ConnectionsInitiated)
        Console.WriteLine("  Przyjęte ........................ : " & _
          TcpStat.ConnectionsAccepted)
        Console.WriteLine("  Nieudane próby .................. : " & _
          TcpStat.FailedConnectionAttempts)
        Console.WriteLine("  Zresetowane ..................... : " & _
          TcpStat.ResetConnections)

        Console.WriteLine()
        Console.WriteLine("Informacje o segmentach:")
        Console.WriteLine("  Odebrane  ....................... : " & _
          TcpStat.SegmentsReceived)
        Console.WriteLine("  Wysłane ......................... : " & _
          TcpStat.SegmentsSent)
        Console.WriteLine("  Wysłane ponownie ................ : " & _
          TcpStat.SegmentsResent)

        Console.ReadLine()

    End Sub

End Module
