URL terimine http linkleri sayesinde ne kadar alışmış olsak da, URI terimi birçoğumuza yabancı gelebilir. Basitçe anlatmak gerekirse URI (Uniform Resource Identifier) bir kaynak adresidir. Örneğin https://en.wikipedia.org/wiki/Uniform_Resource_Identifier
linki:
en.wikipedia.org
alan adındaki (host)/wiki/Uniform_Resource_Identifier
adresindeki kaynağı (resource)https
protokolü ile
adresler. En bilindik URL, URI yapılarından biri günlük kullanımlardan alışkın olduğumuz HTTP linkleridir. Fakat bunun gibi bir sürü protokol var. ftp://
magnet://
gibi. Her program kendisi için bu tarz bir custom uri yapısı tanımlayabilir. Bizlerde bu yazımızda windows üzerinde putty kullanımımızı kolaylaştırmak için regedit aracılığıyla özel bir uri scheme tanımlayacağız.
Putty için özel bir protokol oluşturmadan için Custom URI mantığının Windows üzerinde nasıl çalıştığını anlamak için öncelikle cmd.exe için basit bir test yapalım. regedit
kullanarak alert://
diye bir protokol oluşturacağız. alert://deneme
gibi URI ler artık otomatik olarak bir cmd penceresi açık deneme parametresini cmd’ye geçirecek. Örneğin bu ayarları yaptıktan sonra alert://deneme linkine bastığınızda aşağıdaki gibi bir cmd ekranı ile karşılaşmanız gerekiyor:
Yapmamız gereken ayarlar ise şu şekilde:
Bunları el ile yapmak istemiyorsanız aşağıdaki metni notepad’e yapıştırıp .reg
uzantılı olarak kaydederek çalıştırırsanız aynı sonucu elde edersiniz.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\alert] @="URL:Alert Protocol" "URL Protocol"=""
[HKEY_CLASSES_ROOT\alert\shell] [HKEY_CLASSES_ROOT\alert\shell\shell]
[HKEY_CLASSES_ROOT\alert\shell\shell\command] @="\"c:\windows\system32\cmd.exe\" /k echo \"%1\""
Bu şekilde kaydedip çalıştırdıktan sonra alert:// adreslerinin artık cmd penceresi açtığını görüyoruz. Browserınızda çalışmadıysa başlat > çalıştır ile de deneyebilirsiniz:
Çıktı şu şekilde olmalı:
Yalnız burada fark ettiğimiz bir detay var. cmd.exe
ye parametre alert://
olarak geçiriliyor. Biz bunu putty için kullanmak istediğimizden bu stringi temizleyip putty.exe
ye doğrudan ip adresi olarak vermemiz gerekecek. Şu anda alert://deneme
komutunu çalıştırdığımızda arka planda cmd.exe /k echo "alert://deneme/"
komutu çalışıyor. Bunu ekran çıktısında görebiliyoruz. putty için bir protokol geliştirirken ise yapmak istediğimiz putty://ipadresi
şeklindeki url yapılarında putty.exe ipadresi
şeklinde bir komut çalıştırabilmek. Fakat yukarıdaki alert protokolündeki gibi bir yöntem izlersek gibi şu haliyle putty.exe putty://ipadresi/
şeklinde çalışır. Kısacası bu parametreyi temizlememiz gerekiyor.
Bunun için pputty.bat
isimli bir batch script oluşturup bunu bu parametre temizleme işlemini yapmamız gerekiyor. Bu scripte her yerden ulaşabilmek için c:\windows\pputty.bat olarak kaydetmek mantıklı içeriği ise şu şekilde:
set p=%1 set p2="%p:~9,-2%" echo %p2% start putty %p2%
Bu kısa scriptin yaptığı baştaki 4 karakterle sonradaki 2 karakteri temizleyerek parametreyi p2 değişkenine alıyor. sonrasında da putty yi çalıştırıyor.
Tabi bu script tek başına bir işe yaramıyor. Buna regedit
ile oluşturacağımız protokole bağlamamız gerekiyor. Bunun için yukarıdaki işlemlerin aynısı putty klasörü için yapıyoruz fakat komut olarak:
“c:\windows\system32\cmd.exe” /c pputty “%1”
veriyoruz. Böylece putty://
için yapılan her istek pputty.bat
üzerinden putty.exe
ye yönlendirilmiş olacak.
elle yapmak istemezseniz kaydedip çalıştırarak aynı sonuca erişebileceğiniz putty.reg
dosyasının içeriği şöyle:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\putty] "URL Protocol"=""
@="URL:Putty Protocol" [HKEY_CLASSES_ROOT\putty\shell]
[HKEY_CLASSES_ROOT\putty\shell\open]
[HKEY_CLASSES_ROOT\putty\shell\open\command] @="\"c:\windows\system32\cmd.exe\" /c pputty \"%1\""
Bu işlemlerden sonrada putty://ipadresi gibi linkler oluşturarak bunlar üzerinden putty ye rahatlıkla ulaşabilirsiniz. Bu işlemi kolaylaştırmak için bookmarklet de kullanabiliriz. Bunu sık kullanılanlar toolbarına sürükleyip bırakarak o an aktif olan domaine putty kullanarak bağlanabilirsiniz:
ek olarak istediğiniz her komutu exec://komut1 & komut2
şeklinde çalıştırmanızı sağlayacak exec protokolü için ise dosyalar şöyle:
pexec.bat:
set p=%1 set p2=%p:~8,-2% echo %p2% %p2%
exec.reg:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\exec] "URL Protocol"=""
@="URL:Exec Protocol" [HKEY_CLASSES_ROOT\exec\shell]
[HKEY_CLASSES_ROOT\exec\shell\open]
[HKEY_CLASSES_ROOT\exec\shell\open\command] @="\"c:\windows\system32\cmd.exe\" /k pexec.bat \"%1\""
.bat dosyalarını c:\windows
altına atmayı unutmayın. Dosya olarak indirmek isterseniz: