morning Posted May 15, 2010 Share Posted May 15, 2010 Youtube giriş için artık ortalıkta birsürü hosts dosyası var ve hepsi tam anlamıyla işe yaramıyor (Ya da ben bulamadım) ve yeni site engellenirse hosts dosyasını güncellemek zorunda kalıyoruz. Bunun yerine artık sadece DNS değiştirmeyi yeterli görüyorum ancak bende her yeni bağlantıda yerel ağ bağlantısı farklı isim aldığı için sürekli DNS'yi elle değiştirmek zorunda kalıyorum. DNS değiştirecek basit bir programcık olsa işimizi daha kolay hallederiz diye düşünüyorum.Ayrıca katılımsız projelerime de ekleyebilirim bunu. Soru anlaşıldı sanırım,Autoit'te bir komutla DNS değiştirmemiz mümkün müdür? Not : Ben biraz araştırma yaptım herkes netsh önermiş.Ben netsh ile yapmak istemiyorum. Çünkü bağlantı adları her bilgisayarda değişebiliyor,hatta aynı bilgisayarda da değişebiliyor. Örneğin yerel ağ bağlantısı yerine kablosuz ağ bağlantısı olabiliyor,ya da yerel ağ bağlantısı 2-3-4 gibi farklı isimler alıyorlar. Bu yüzden netsh komutunu kullanmak istemiyorum. Link to comment Share on other sites More sharing options...
KemalALKIN Posted May 15, 2010 Share Posted May 15, 2010 linuxta komutla oluyordu Link to comment Share on other sites More sharing options...
blue_life Posted May 15, 2010 Share Posted May 15, 2010 @morning Aslında basit bir regwrite ile değişmesi lazım! _BL_DNS_CHANGER("208.67.222.222,208.67.220.221")Func _BL_DNS_CHANGER($DNS_SERVER) Local $BL_FND_DNS[1][2],$1 = 1 Local $BL_DNS_VALUE,$BL_DNS_VALUE1 While 1 $BL_DNS_VALUE = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $1 ) If @error <> 0 then ExitLoop ReDim $BL_FND_DNS[$1][2] $BL_FND_DNS[$1 - 1][0] = $BL_DNS_VALUE $BL_FND_DNS[$1 - 1][1] = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer") RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"Old_Dns","REG_SZ",$BL_FND_DNS[$1 - 1][1]) RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$DNS_SERVER) RegWrite("HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$DNS_SERVER) RegWrite("HKLM\SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$DNS_SERVER) $1 += 1 WEndEndFunc[/CODEBOX] Tabi tarayıcıyı veyahut, pcyi kapatıp açmak gerekbilir. Gerçi farklı yöntemlerde var. [CODE]http://www.sordum.com/?p=2752[/CODE] Ama ortak çalışma olduğu için kodları paylaşamam! Kolay gelsin... Link to comment Share on other sites More sharing options...
morning Posted May 15, 2010 Author Share Posted May 15, 2010 Blue_Life teşekkürler.Aslında tam tahmin ettiğim yöntemle yapmışsın. Ben de regediti incelemiş senin bulduğunu bulmuştum fakat her ağ kartına göre farklı değer yaptığından bunu AutoIt'te nasıl kullandıracağımı bilmiyordum. Şimdi çözdüm olayı. Denedim ve çalıştı. Tekrar teşekkür ederim. Link to comment Share on other sites More sharing options...
iso_manyak Posted May 18, 2010 Share Posted May 18, 2010 morning bizimlede paylaşsanda kullansak olmaz mı Link to comment Share on other sites More sharing options...
blue_life Posted May 18, 2010 Share Posted May 18, 2010 @iso_manyak İlgili codlar zaten yukarda! Link to comment Share on other sites More sharing options...
iso_manyak Posted May 18, 2010 Share Posted May 18, 2010 ben daha önce hiç autoit kullanmadım kodları nasıl kullanacaımı bilmediğim için morningden istemiştim. yani hazırlayıp şuan kendi kullanıyorsa exe dosyası halindeyse die demiştim Link to comment Share on other sites More sharing options...
morning Posted May 18, 2010 Author Share Posted May 18, 2010 Olmaz mı? Buyur Google DNS olarak ayarlayan şekilde. http://www.mediafire.com/?hwinmd2mmza[/CODE] Aslında InputBox'lı filan şekilde DNS olarak ayarlayan yapacaktım da. Olmadı.Bir satırda problem var.Yani DNS'nin doğru yazılıp yazılmadığını denetleyen satırda.Yoksa yapılır ama DNS yanlış girilirse problem olur. Func _dns1() $dns1 = InputBox("DNS Değiştirme","Lütfen 1. (Yeğlenen) DNS adresini giriniz.","8.8.8.8") if $dns1 = "" then _dns1() $dns_1 = StringSplit($dns1,".") SORUN BURDA. şimdi dns mesela 8.8.8.8.8 ya da 8.8.8 olarak girildiyse yani $dns_1[x] = 4 değilse başa dönme komutu nasıl vereceğiz? if not IsNumber($dns_1[1]) then _dns1() if not IsNumber($dns_1[2]) then _dns1() if not IsNumber($dns_1[3]) then _dns1() if not IsNumber($dns_1[4]) then _dns1() if $dns_1[1] > 255 then _dns1() if $dns_1[2] > 255 then _dns1() if $dns_1[3] > 255 then _dns1() if $dns_1[4] > 255 then _dns1() Return $dns1 EndFunc Func _dns2() $dns2 = InputBox("DNS Değiştirme","Lütfen 2. (Yedek) DNS adresini giriniz.","8.8.4.4") if not IsDeclared($dns1) then _dns2() $dns_2 = StringSplit($dns2,".") SORUN BURDA. şimdi dns mesela 8.8.8.8.8 ya da 8.8.8 olarak girildiyse yani $dns_1[x] = 4 değilse başa dönme komutu nasıl vereceğiz? Aynı şey burda da var. if $dns_2[1] > 255 then _dns2() if $dns_2[2] > 255 then _dns2() if $dns_2[3] > 255 then _dns2() if $dns_2[4] > 255 then _dns2() Return $dns2 EndFunc $sondns1 = _dns1() $sondns2 = _dns2() _BL_DNS_CHANGER($sondns1,$sondns2) Func _BL_DNS_CHANGER($DNS_SERVER) Local $BL_FND_DNS[1][2],$1 = 1 Local $BL_DNS_VALUE,$BL_DNS_VALUE1 While 1 $BL_DNS_VALUE = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $1 ) If @error <> 0 then ExitLoop ReDim $BL_FND_DNS[$1][2] $BL_FND_DNS[$1 - 1][0] = $BL_DNS_VALUE $BL_FND_DNS[$1 - 1][1] = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer") RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"Old_Dns","REG_SZ",$BL_FND_DNS[$1 - 1][1]) RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$DNS_SERVER) RegWrite("HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$DNS_SERVER) RegWrite("HKLM\SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE,"NameServer","REG_SZ",$DNS_SERVER) $1 += 1 WEnd EndFunc Normalde bu komutu biliyordum da AutoIt'i unutmuşum bayağıdır kullanmayınca. Link to comment Share on other sites More sharing options...
blackman12 Posted May 18, 2010 Share Posted May 18, 2010 Morning; $IPAddress1 = _GUICtrlIpAddress_Create($Form1, 88, 72, 130, 21) bak bu dns adresi girilmesi için hazır bir inputbox şeklidir bunu kullan. Link to comment Share on other sites More sharing options...
ALBAYCAN Posted May 18, 2010 Share Posted May 18, 2010 Please register to see this content. bu programı indir dene bide ben kendim de kullanyom memnunum kur kendi otomatik en etkili dns yi bulup ayarlıyo Link to comment Share on other sites More sharing options...
blue_life Posted May 19, 2010 Share Posted May 19, 2010 Bence katılımsız için gui arabirimi gereksiz. Çünkü bu işi yapan bir sürü program var. Kısaca ben katılımsız kurulumda kullanmak için parametre desteği ekler ve istediğim adresi parametre ile eklerdim. Bir örnek verim. Kendinize göre düzenlersiniz.... If $cmdline[0] = 0 Then MsgBox(64,"Kullanma talimatı!",@ScriptName & " DnsAdres1,DnsAdres2" & @crlf & @crlf & " Örnek:" & @crlf & _ " " & @ScriptName & " 8.8.8.8,8.8.4.4" & @crlf & _ " " & @ScriptName & " 208.67.222.222,208.67.220.220") Exit Else $cmdlineraw = StringStripWS($cmdlineraw,3) Global $Get_Dns = _BL_IP_SPLIT($cmdlineraw) If @error Then ConsoleWrite("Hata: Dns adresi değiştirilemedi!") Else ConsoleWrite("Dns adresi " & $Get_Dns & " olarak değiştirildi!") EndIf EndIf Func _BL_DNS_CHANGER($DNS_SERVER) Local $BL_FND_DNS[1][2], $1 = 1 Local $BL_DNS_VALUE, $BL_DNS_VALUE1 While 1 $BL_DNS_VALUE = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $1) If @error <> 0 Then ExitLoop ReDim $BL_FND_DNS[$1][2] $BL_FND_DNS[$1 - 1][0] = $BL_DNS_VALUE $BL_FND_DNS[$1 - 1][1] = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE, "NameServer") RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE, "Old_Dns", "REG_SZ", $BL_FND_DNS[$1 - 1][1]) RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE, "NameServer", "REG_SZ", $DNS_SERVER) RegWrite("HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE, "NameServer", "REG_SZ", $DNS_SERVER) RegWrite("HKLM\SYSTEM\ControlSet002\Services\Tcpip\Parameters\Interfaces\" & $BL_DNS_VALUE, "NameServer", "REG_SZ", $DNS_SERVER) $1 += 1 WEnd EndFunc ;==>_BL_DNS_CHANGER Func _BL_IP_CHECK($IP_CHECK) Local $Value = StringSplit($IP_CHECK, ".") If $Value[0] = 4 And StringIsDigit($Value[1]) And StringIsDigit($Value[2]) And StringIsDigit($Value[3]) And StringIsDigit($Value[4]) Then Return True Return False EndFunc Func _BL_IP_SPLIT($DNS_ADDRESS) Local $DNS_VALUE If StringInStr($DNS_ADDRESS,",") Then $DNS_VALUE = StringSplit($DNS_ADDRESS,",",1) If Not _BL_IP_CHECK($DNS_VALUE[2]) Then $DNS_ADDRESS = $DNS_VALUE[1] If Not _BL_IP_CHECK($DNS_VALUE[1]) Then If $DNS_ADDRESS = $DNS_VALUE[1] Then Return SetError(1,0,-1) $DNS_ADDRESS = $DNS_VALUE[2] EndIf Else If Not _BL_IP_CHECK($DNS_ADDRESS) Then Return SetError(1,0,-1) EndIf _BL_DNS_CHANGER($DNS_ADDRESS) Return $DNS_ADDRESS EndFunc[/CODE] Link to comment Share on other sites More sharing options...
iso_manyak Posted May 19, 2010 Share Posted May 19, 2010 Olmaz mı? Buyur Google DNS olarak ayarlayan şekilde. http://www.mediafire.com/?hwinmd2mmza[/CODE] Aslında InputBox'lı filan şekilde DNS olarak ayarlayan yapacaktım da. Olmadı.Bir satırda problem var.Yani DNS'nin doğru yazılıp yazılmadığını denetleyen satırda.Yoksa yapılır ama DNS yanlış girilirse problem olur. Normalde bu komutu biliyordum da AutoIt'i unutmuşum bayağıdır kullanmayınca. 208.67.220.220 208.67.222.222 buna ayarlayabilirmiyiz Link to comment Share on other sites More sharing options...
blue_life Posted May 22, 2010 Share Posted May 22, 2010 @iso_manyak OpenDNS için Compile ettim... http://bluelife.winbuilder.net/index.php?dir=Garbage%2F&download=OpenDNS.zip[/CODE] Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.