" Umut, hiç görmeyen birine gökkuşağını anlatmak kadar zor ve imkansız... "

Categories

-

Vb.Net internet ve ag baglantisi kontrolu

Vb.net kullanarak yazdigimiz programlarda internet çikis adresimizi ve yerel ag adresimizi yani IPv4 adresimizi ögrenmek istersek eger örnek kod yapisi asagidaki gibi olmak durumundadir. Yerel ag baglantisinin aktif olup olmadigini yani bilgisayarin bir aga bagli olup olmadigini kontrol etmek istersek bunu iki farkli sekilde kontrol edebiliyoruz. Birinde ad alanimizi import ederek ulasiyoruz, diyerinde ise direk ulasim saglayabiliyoruz. Baglanti tipimizi ögrenmek istedigimizde ise wininet.dll yapisini import ederek sistem baglanti tiplerimizi görebiliriz. Baglanti tipi biraz karisik geldi ama googlede arastirdigimda bunu elde edebildim.Biraz düzenledikten sonra en son halini asagida görebilirsiniz.

Uygulama kod yapimiza bakacak olursak eger;

Imports System.Net
Imports System.Net.NetworkInformation
Imports System.Runtime.InteropServices
Imports System.Text.RegularExpressions

Public Class Form1
    
    Private Shared Function InternetGetConnectedState(ByRef Description As InternetGetConnectedStateFlags, ByVal ReservedValue As Integer) As Boolean
    End Function

    
    Public Enum InternetGetConnectedStateFlags
        INTERNET_CONNECTION_MODEM = &H1
        INTERNET_CONNECTION_LAN = &H2
        INTERNET_CONNECTION_PROXY = &H4
        INTERNET_CONNECTION_RAS_INSTALLED = &H10
        INTERNET_CONNECTION_OFFLINE = &H20
        INTERNET_CONNECTION_CONFIGURED = &H40
    End Enum
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        txtbagtip.Enabled = False
        txtipadres.Enabled = False
        txtipv4.Enabled = False
        txtbagdurum.Enabled = False

        Try
            Dim flags As InternetGetConnectedStateFlags = 0
            Dim agbaglanti As Boolean = InternetGetConnectedState(flags, 0)
            If agbaglanti = True Then
                If flags And InternetGetConnectedStateFlags.INTERNET_CONNECTION_LAN Then
                    txtbagtip.Text = "Lan Baglantisi"
                ElseIf flags And InternetGetConnectedStateFlags.INTERNET_CONNECTION_MODEM Then
                    txtbagtip.Text = "Modem Baglantisi"
                ElseIf flags And InternetGetConnectedStateFlags.INTERNET_CONNECTION_PROXY Then
                    txtbagtip.Text = "Proxy Baglantisi"
                End If
            Else
                txtbagtip.Text = "Ag Baglantisi Kurulamadi !"
            End If
        Catch
            MessageBox.Show("Internet Baglanti Kontrolü Yapilamadi!")
        End Try

        Try
            Dim strIP As String
            Dim wc As New WebClient()
            strIP = wc.DownloadString("http://checkip.dyndns.org")
            strIP = (New Regex("\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b")).Match(strIP).Value
            wc.Dispose()
            txtipadres.Text = strIP
        Catch ex As Exception
            txtipadres.Text = "Internet Baglantisi Kurulamadi !"
        End Try

        ' Ag baglantimizi iki sekilde elde ediyoruz. Örnek kullanimlari;

        If My.Computer.Network.IsAvailable = True Then
            For Each adres As IPAddress In Dns.GetHostAddresses(Dns.GetHostName())
                txtipv4.Text = adres.ToString()
            Next
        Else
            txtipv4.Text = "Ag Baglantisi Kurulamadi !"
        End If

        If NetworkInterface.GetIsNetworkAvailable() = True Then
            ' System.Net.NetworkInformation Sinifini kullanmaktadir. Bu yüzden import etmeyi unutmuyoruz.
            ' Bu kodumuz ile Yerel Ag Baglantisi aktif olup olmadigini kontrol edebiliriz.
            txtbagdurum.Text = "Ag baglantisi var !"
        Else
            txtbagdurum.Text = "Ag baglantisi yok !"
        End If

    End Sub
End Class

Uygulama dosyasini buradan indirebilirsiniz.

  • 0
  • 1411
  • 0

- BUNLARIDA GÖZDEN GEÇİREBİLİRSİNİZ -

HENÜZ YORUM YAPILMAMIŞ !

Yorum yazın

HAKKIMDA

KONULARI TAKİP EDİN

SOSYAL AĞLAR

  • Mesajınızı Gonderin