VB.NET (Visual Basic) ile DNS Değiştiren Program Yapalım


Yazımız en son 25 Haziran 2014 tarihinde güncellenmiş ve 296 defa okunmuş.

Merhaba,

Çoğumuzun ihtiyacı olan DNS ayarlarını otomatik olarak yapan ve bizi zahmetten kurtaran bir program oluşturmayı anlatıyorum. Bunu Visual Studio 2008 ve üzeri versionlarında build edebilirsiniz. Unutmamanız gereken şey, uygulama yönetici olarak çalıştırılmalıdır.

Projede İhtiyacımız Olanlar:

1 Adet Form

Microsoft Win32 modülü

Kodlama

Sadece tek bir form’a ihtiyacımız var, aslında programı çalıştıranlar bu form’u görmeyecek. Sadece işlevi yapmak için “form_load” event’ini kullanacağız. Projemizde sadece Microsoft.System32 import etmemiz yeterli olacak.

Imports Microsoft.Win32

Sonra, genel sınıf (public class) kısmında formumuzun ihtiyaç duyacağı kodlarımız var.

Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim reg As String = “SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\”
For Each x In Registry.LocalMachine.OpenSubKey(reg, True).GetSubKeyNames()
For Each y In Registry.LocalMachine.OpenSubKey(reg & x & “\”, True).GetValueNames
If y = “NameServer” Then _
Registry.LocalMachine.OpenSubKey(reg & x & “\”, True).SetValue(y, “8.26.56.26,8.20.247.20”)
Next
Next
Shell(“ipconfig /flushdns”)
MsgBox(“DNS Ayarlarınız COMODO SECURE DNS ile güncellendi ve DNS Önbelleği Temizlendi. Program şimdi kapanacak. Başka işlem yapmanıza gerek yok.”)
End

End Sub

End Class

Burada yaptığım şey, form1’in başlangıç event’inde windows kayıt defteri (registry) içerisinde değişiklik yapmak. Önce “reg” adında bir değişken tanımladım ve bu değişkene üzerinde değişiklik yapacağım kayıt defteri yolunu verdim. İhtiyacım olan şey, yazılımın çalıştırılacağı bilgisayardaki registry içerisinde TCP/IP parametrelerine ulaşarak sonra alt anahtarlara ilerlemek ve DNS değerlerini elde etmek. Kullandığım dns numaraları ise COMODO Secure DNS olacak. Yani;

8.26.56.26

8.20.247.20

değerleri. Bu değerleri gerekli registry anahtarlarına yazdırdıktan sonra, shell kullanarak ipconfig ile dns önbelleğini temizlettiriyorum. Sonra bir mesaj kutusuyla, kullanıcıya işlemin tamamlandığına dair mesaj gönderiyor ve programı kapattırarak projeyi sonlandırıyorum.

Eğer programın otomatik olarak yönetici haklarıyla başlatılmasını istiyorsanız;

Project menüsünden [Proje Adı] Properties seçeneğine tıklatın. Soldaki Application kısmına gelin ve “View Windows Settings” butonuna tıklatın. Açılan app.manifest dosyasında şu satırı aratın;

<requestedExecutionLevel level=”asInvoker” uiAccess=”false” />

ve şununla değiştirin;

<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false” />

Sonrasında programınız açıldığında yönetici olarak çalışacaktır.

Bir sonraki yazıda görüşmek ümidiyle,

Fatih M. BAŞARAN