Windows bash ile DNS değiştirici

Sunucu sorunları nedeniyle kendi bilgisayarımdaki DNS ip adreslerini birkaç defa değiştirmem gerekti. Otomatikleştirmeye biraz yatkınlığım olduğundan bu işi yapacak basit bir windows bash dosyası yazdım. Bu işi yapan küçük boyutlu ve marifetli GUI destekli yazılımlar mevcut, ancak bash ile oldukça pratik oldu.

Yazının sonunda vereceğim kodları, oluşturacağınız dns.cmd dosyası içine yapıştırın, dns.cmd dosyasını da C:&#92windows&#92system32&#92 dizinine kopyalayın.

Kullanımı

Bash betiğinin kullanımı oldukça basit Win+R ile açılan “çalıştır” komut satırına “cmd parametre” yazmanız yeterli. Ayrıca açık olan herhangi bir windows konsolunda “cmd parametre” biçiminde kullanabilirsiniz. Dosyayı system32 dizini içine attığımız için bir DOS komutu gibi direk kullanabiliyoruz.

Geçerli parametreler; google, open, comodo, ttnet.

Bilinmesi gerekenler

Öncelikle sadece windows7 üzerinde test ettiğimi özellikle belirtmek isterim.

Ağ bağlantılarındaki varsayılan ağ kartının adı “Local Area Connection” olmalıdır, windows7 kurulumunda varsayılan isim budur, ancak bu isim f2 ile değiştirilebilmektedir. Eğer ağ kartının farklı bir adı varsa ya ağ kartının adını ya da betikteki “Local Area Connection” ifadelerini değiştirmeniz gerekir. İkinci bir kartınız varsa (virtualbox sanal bir tane kurar) ve bu ikinci kart için DNS değişikliği yapmak istiyorsanız betikteki “Local Area Connection” ifadeleri ile ağ kartınızınız ismini aynı yapmalısınız. Betik şu an oldukça yalın haldedir, birden fazla ağ kartı için parametre eklemesi yapılıp, örneğin “dns 1 google” şeklinde 1. kart değiştirilebilir.

dns.cmd içeriği

::
:: Canver Software easy DNS changer
::
:: usage:
::    1. copy dns.cmd to c:&#92windows&#92system32
::    2. win+R after write dns parameter, eg. dns google
::
::    Tested only windows 7
::
:: Lisence: GPL v3    http://www.gnu.org/licenses/gpl.html
::

@echo off

IF [%1]==[] (
  GOTO noparam
) ELSE (
  GOTO %1
)

:google
netsh interface ip set dns name="Local Area Connection" static 8.8.4.4
netsh interface ip add dns name="Local Area Connection" 8.8.8.8 index=2
ECHO google dns is set
GOTO :eof

:open
:opendns
netsh interface ip set dns name="Local Area Connection" static 208.67.220.220
netsh interface ip add dns name="Local Area Connection" 208.67.222.222 index=2
ECHO open dns dns is set
GOTO :eof

:comodo
netsh interface ip set dns name="Local Area Connection" static 156.154.71.22
netsh interface ip add dns name="Local Area Connection" 156.154.70.22 index=2
ECHO comodo dns is set
GOTO :eof

:ttnet
netsh interface ip set dns name="Local Area Connection" static 195.175.39.39
netsh interface ip add dns name="Local Area Connection" 195.175.39.40 index=2
ECHO ttnet dns is set
GOTO :eof

:modem
netsh interface ip set dns name="Local Area Connection" static 192.168.2.1
ECHO ttnet dns is set
GOTO :eof

:noparam
ECHO Parameter is missing
ECHO Available parameters: google, open, comodo, ttnet
GOTO :eof

Bir Cevap Yazın