Tekil Mesaj gösterimi
Alt 15 Ekim 2008, 22:58   #1
Çevrimdışı
zEbAni
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Wildcard (Joker Karakterler)




Konu: Wildcard (joker karakterler)
Döküman: Batuhan " zEbAni " Tamtartar

Herhangi bir komut ile yapmak istediğimiz birşeyde zorlandığımızda yada bir komutu daha geniş kapsamlı kullanmak için biz " wilcard " lardan yardım alırız. Wilcard'lar joker karakterler diye de anılırlar. Bu karakterler kullanım alanlarına ve şekillerine göre ayrı anlamları, farklı temsilleri vardır. Genelde " Nick!Identd@Host " maskesi dahilinde kullanılır ve bizim işimizi kolaylaştırmak için vardır.

? ve * olmak üzere iki şekildedirler.

? : Tek bir karakteri temsil eder. Bahsi geçen maskenin sayısı belli olup ancak şekli şemali belli olmadığı durumlarda kullanılır.
Mesela şöyle diyelim, 6 haneli bir nick ancak 3. harfi bilinmiyor. Biz bu 3. hanenin yerine " ? " işareti kullanırız. ? işareti yerine her türlü karakter gelebilir.

Örnek -> 3 haneli kanalları nasıl listeleyebilirim?
Cevap -> /list #???

Yukarıdaki soruyu şöyle düşünelim. Bize meyve olduğunu söylüyor ama hangi meyve olduğunu söylemiyor.
Bu nar da olabilir, muz da. 3 harfli olsun da ne olursa olsun diye ekliyor sonuna da.

Örnek -> Sunucu üzerindeki aktif olan kanallardan sadece 5 haneli olup, 3. hanesi " a " , son hanesi " c " olanları listelemek istiyorum. Komut nedir?
Cevap -> /list #??a?c

Yukarıda da görüldüğü üzre; ilk iki hane için soru işareti kullanmışız çünkü: bizden istenen kısım nickin 5 haneli olması ve 3. ve 5. harflerin a ve c olması. Bu tür sorularda biz; bizden isteneni yerine yerleştirip, bilinmeyen kısımlara " ? " kullanıyoruz.

? karakterinin temsilini detaylı olarak gördük. Diğer işaretimiz ise ;


* : Kullanım yerine göre önündeki/arkasındaki tüm karakterleri temsil eder. Karakter sayısının belli olmadığı ancak belirtilen karakterin içinde olduğu kısımlar için kullanılır.

Bu karakteri kullanırken de şöyle düşünücez. Bir ban uygulamamız isteniyor; bize verilen bilgilerde sadece nickin " a " harfi ile bittiği belirtiliyor. Biz bu a'dan önceki kısma " * " deriz. " * " kısmı a'dan öncesi için geçerli olur ve karakter sayısı da belirsizdir aynı zamanda.

Temel olarak 4 kısımda * işaretini kullanırız.


Kısım1 -> Belirtilen maskenin sadece ilk hanesinin belli olduğu durumlarda,
Kısım2 -> Belirtilen maskenin sadece son hanesinin belli olduğu durumlarda,
Kısım3 -> Belirtilen maskenin ilk ve son hanesinin belli olduğu durumlarda,
Kısım4 -> Belirtilen maskenin ilk ve son hanelerinin belli olmayıp sadece içerisinden bir veya birden fazla karakterinin belli olduğu durumlarda.



Soru(Kısım1) -> #X Kanalında nicki a ile başlayan kullanıcıları akicke almak istiyorum. Komut nedir ?
Cevap -> /cs akick #X add a*!*@*


NOT: Nick!Identd@Host maskesini kullanırken; bize verilen kısımları kullanıp, hakkında bilgi sahibi olmadığımız kısımlar için " * " kullanıyoruz. Görüldüğü gibi nick kısmını " a* " olarak kullandık. İdentd ve host kısımları için ise her ne olursa olsun anlamını taşıması için sadece " * " kullandık. Yani komutun okunuşu; " nick'i a ile başlayıp karakter sayısı belli olmayan(Ahmet'te, Abdülrezzat'ta bu akickten etkilenir. Bizim için önemli olan kısım baştaki " a " ) ve İdentd'i ile Host'u kaç karakterli olursa olsun ve hangi karakteri içerirse içersin #X kanalına girişini engellemek istiyorum " şeklinde olucaktır.


Soru(Kısım2) -> #X kanalında nick'i a ile biten kullanıcıları akicke almak istiyorum. Komut nedir ?
Cevap -> /cs akick #X add *a!*@*

Açıklama: Burda nick kısmının başına " * " koyduk ve en sonuna " a " ekledik. Bu demek oluyor ki " Nickinin karakter sayısı, identd'inin ve host'unun ne içerdiği kaç haneli olduğu önemli değil; nicki a ile bitsin yeterli. "


Soru(Kısım3) -> #X kanalında identdinin ilk hanesi a son hanesi p olan kullanıcıları akick almak istiyorum. Komut nedir ?
Cevap -> /cs akick #X *!a*p@*

Açıklama: Bu soruda bize diğer 2 sorudan farklı olarak IDENTD'indeki karakterler hakkında bilgi verilmiş. Öncelikle dikkat etmemiz gereken nokta burası, daha sonrasında ise nerede doğru kullanıcağımızı bilmeliyiz. Nick ve Host hakkında herhangi bir bilgimiz olmadığı için; her ikisi içinde " * " kullanmamız gerekmektedir. IDENTD kısmı için ise ; " a*p " kullanacağız. Tümünün birleşiminde oluşan maske " *!a*p@* " olucaktır.


Soru(Kısım4) -> #X kanalına hostunun içerisinde " 10 " geçen kullanıcıların girişini engellemek istiyorum. Komut nedir ?
Cevap -> /cs akick #kanal add *!*@*10*

Açıklama: Bu soruda da bize akick eklenicek kişinin HOST'undaki karakterler hakkında bilgi verilmiş. Demekki biz nick ve identd yerine " * " kullanıcağız. HOST için kullanmamız gereken wilcard'ımız ise ; " *10* " olucaktır. Bunların birleşimi de " *!*x*@* " maskesini oluşturucaktır.



? ve * karakterlerinin beraber kullanımı ;

Bu kısım sizin kafanızı karıştırmaya birebirdir. Ancak üstteki karakterlerin kullanım yerlerini mantıken kavradıysanız size pekte zor gelmicektir.
Burda dikkat edilecek nokta aslında okuma kısmıdır. Karakterleri okyabiliyorsanız; gerisi kolaydır.

Burayıda iki farklı şekilde inceleyelim.

Kısım1 -> ?'den sonra kullanılan * karakteri,
Kısım2 -> *'dan sonra kullanılan ? karakteri.



Buraya kadarki örneklerimizde soru sorup - cevabı istedik bu sefer tam tersi yöntemle ilerleyelim.

Örnek(Kısım1) -> /cs akick #x add ??*a*??!*@*

Açıklama: Bu komutu uyguladığımızda; #X kanalına karakter sayısı sınırsız nickinin ilk iki ve son iki hanesi HARİÇ, içerisinde a geçen nicklerin kanala girişi engellenicektir. Başta ? görenler eminimki bu komuta 6 haneli içinde a geçen nickler akicke alınır diye düşünmüşlerdir. Ancak bu komutta bir karakter sınırlanması yoktur.
Burdan anlıyoruz ki ; ?'ın başta veya sonda olup * işaretinin olduğu durumlarda ? işaretinin olduğu kısımları içerisinden çıkarıyoruz. Nasıl yani diyecek olursanız, zEbAni nickinin biz baştaki ve sondaki ilk iki hanesini çıkarıyoruz yani " ba " olarak düşünüyoruz. Bakıyoruz ki kalan kısımlar içerisinde " a " geçiyor, anlıyoruz ki bu nick akickten etkilenir.

Peki Master nicki bu akickten etkilenir mi? bakalım; Master nickinin ilk ve son iki harflerini çıkaralım, kalan kısım " st " harfleridir. Biz bakıyoruz ki kalan kısımda " a " yok ; demekki bu nick akickten etkilenmez.




Örnek(Kısım2) -> /cs akick #X add *?a?*!*@*

Açıklama: Bu akick'i uygulayacağımız akick bizim " KISIM4 " te göstermiş olduğumuz uygulama şeklinden bir farkı yoktur. Dolayısı ile ordaki ? karakterleri fazlalık etmiş ve gereksiz kullanılmışlardır. Bu akick'ten karanter sayısızı sınırsız nickinin içinde a geçen tüm kullanıcılar etkilenicektir.



Wilcard hakkında soru - cevaplar ;

SORU1 : (lütfen bu soruyu dikkatli okuyunuz.)
Kanalıma öyle bir access-list çekeyim ki;
a-) 'kazim' ve 'nazim' nick'leri kesinlikle listede olsun
b-) listedeki bu iki kişi hariç olanların nicklerinin listede çıkma olasılığı minimum olsun
#testing kanalında uygulayacağımız bu komut için gerekli olan tam komutu yazınız.
( Bu soru kernel32 nickinden alıntıdır )

Cevap1) Şimdi böyle bir soru ile karşılaştığımızda ilk olarak nicklerin ortak yönlerini belirliyoruz. Daha sonra ise ; kullanım yerlerine göre wilcard'larımızı yerleştiricez.
Kazim ile Nazim arasındaki ortak karakterlere bakıyoruz ;
Her ikisinde de 5 harfli ve 2. harf " a" ve son iki harf " im ".Buna göre Komutumuzu yazıyoruz;

-> /cs access #kanal list ?a?im

Soruda ilk karakter için hem k hemde n nicklerinin çıkması için ? işareti ve yine 3. harfte her ikisi için farklı karakterler temsil etmesi ve listede çıkması için ? işareti kullanıyoruz. Ortak haneleri birleştirip 5 karaktere tamamladıktan sonra sorunun tamamlanmış olduğunun zaten farkına varıyoruz.


SORU2 : Kanalıma 3 haneli içerisinde a geçen kullanıcıların kanalıma girişini engellemek istiyorum. Komut nedir?

Cevap2) Şimdi bu soruda biraz mantığımızı konuşturmamız gerekmektedir. Soruyu ilk duyduğumda bende bayağı bi düşünmüştüm ama sorunun aslına bakınca çok kolay. Biz böyle bir wilcard görmedik, hem sınır olsun hemde içindeki karakteri belirliyelim. O zaman teker teker banlıyacağız..

-> /mode #kanal +bbb a??!*@* ?a?!*@* ??a!*@*

Yukarıdaki komutta görüldüğü gibi; ilk +b mode'unda 1. harfe a verip diğerlerine ? işareti koyduk ki diğer karakterlerin belli olmadığını ifade etmek için. 2. +b mode'unda 2. harfe a verip diğerlerinde soru işareti kullandık. 3'e tamamlayana kadar bu sistemle ilerledik. Oluşan ban liste baktığımızda ise sırası ile " 1. , 2. , 3. " hanelerin tek tek a nicki üzerine banlı olduğunu gördük. Aslında sandığımız kadarda zor değilmiş dimi
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Bunlar mantıken işliyen sorulardı. Şimdide biraz komuta dayalı sorulara bakalım.

SORU3 : #X kanalındaki nicki 5 haneli 2. harfi a 4. harfi y olan, identdinin ilk hanesi ve son 3 hanesi hariç içerisinde x geçenleri aynı zamanda hostu 131 ile başlayanları banlamak istiyorum komut nedir ?

Cevap3) /mode #kanal +b ?a?y?!?*x*???@131*



SORU4 : Bir akick eklemek istiyorum ancak; nick'inin ilk hanesi ve son 2 hanesi hariç içerisinde u geçen nickler etkilensin istiyorum sadece. Uygulamam gereken komut nedir? Ayrıca akickten etkilenicek olan nicklerden bi tane öyleyiniz.

Cevap4) /mode #kanal +b ?*u*??!*@*

Bu akickten " Murat " nicki etkilenir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet