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.