Regex, RegExp, Regular Expressions (Düzenli/Kurallı İfadeler) – Bölüm 1

Regex’e Giriş

Bugün birçok programcının ve hatta veri işleyen herkesin kurtarıcısı olan sayısal ve dizgesel içeriklerde belirli kurallara uyan bölümleri bulan ifadelerden yani Düzenli/Kurallı İfadelerden (Regex/RegExp/Regular Expressions) bahsedeceğiz.

Amerikalı matematikçi Stephen Cole Kleene tarafından 1950’li yıllarda tasarlanan bu kavram günümüzde oldukça yaygın olarak birçok işletim sistemi temelinde ve programlama dilinde entegre olarak gelmektedir.

Bir metin dizisi (string) içerisinde belirlediğimiz düzen/kurallar (pattern) ile eşleşenleri döndüren oluşumdur kısaca.

  • Metin dizisi (string) – Arama yapılacak metin
  • Düzen/kural (pattern) – Arama için kullanılacak kalıplar
  • Eşleşen – Metin içerisinde düzenlere uyan sonuçlar (tekil ya da grup olabilir)
Ufak bir hatırlatma
Düzenli ifadelere makale boyunca kısaca regex, arama yapılacak metine string, kurala da pattern diyeceğim. Yukarıda da dediğim gibi bir çok işletim sistemi ve programlama diline entegre edildiğinde kullanımı farklılık göstermektedir. Başlıca kullanım şekilleri PCRE, ECMAScript, Python, Golang diyebiliriz. Ben aktif olarak C tabanlı diller  (Perl, PHP, C++, C# vb.) kullandığım için PCRE (Perl Compatible Regular Expressions) ile makaleme devam edeceğim. Diğer diller için ufak tefek değişiklikler ile sorunsuz çalışacaktır.
Devamını Oku

C# Kodlama Standartları, Adlandırma Kuralları ve İpuçları

Giriş

Bugün C# ile programlama yapılırken uyulması gereken kodlama standartları ve adlandırma kurallarından bahsedeceğim. Gerek sosyal medyadan gerekse başka mecralardan öğrenci arkadaşlarımızdan gelen kodlara baktığımda kodlama standartlarına ve adlandırma kurallarına uyulmadığını hatta daha da vahim bir şekilde Türkçe karakterli adlandırmaların yapıldığını (C# derleyicisi için sorun teşkil etmez ama TR klavyeye sahip olmayan biri için sorun teşkil eder) görmekteyim. Bu sebepten Türkçe kaynak olarak bu konu hakkında fazla birşey olmadığından bu makaleyi yazma ihtiyacı duydum.

Microsoft .Net Framework yazılırken kullanılan standartlardan örnekler ile C# programlama dilinde herkesin bir bakışta anlayabileceği kod nasıl oluşturulur anlatmaya çalışalım.

Devamını Oku

QHotspot – pfSense için Captive Portal ve FreeRADIUS Yönetim Paneli

Bu makalemizde pfSense Açık Kaynak Firewall yazılımının Captive Portal yönetimini FreeRADIUS uzaktan kimlik doğrulama servisi kullanarak yönetmemizi sağlayan tarafımdan geliştirilmesi devam eden QHotspot projesini tanıtacağım.

Nedir pfSense ?

pfSense logo

pfSense projesi 2004 yılında m0n0wall isimli bir projeden Chris Buechler ve Scott Ullrich tarafından fork’lanarak başlamış ve 2006 yılında ilk sürümünü piyasaya sunmuş içerdiği packet-filtering yazılımı yüzünden “pf” önekini kullanan açık kaynak router firewall FreeBSD dağıtımıdır.

2014 yılında Electric Sheep Fencing LLC (ESF) tarafından satın alınan pfSense temmuz 2017 den beri Apache Lisansı 2.0 kapsamında lisanslanmıştır. 2004 yılından beri telif hakkı Rubicon Communications, LLC (Netgete) firmasındadır.

pfSense, güvenlik duvarı/yönlendirici olarak kullanılmak üzere fiziksel bir bilgisayara veya bir sanal makineye yüklenebilen, web tabanlı bir ara birim üzerinden yapılandırılabilen, güncellenebilen ve yönetmek için altta çalışan FreeBSD bilgisi gerektirmeyen genellikle güvenlik duvarı, yönlendirici, kablosuz erişim noktası (Hotspot), DHCP sunucusu, DNS sunucusu ve VPN çözümü olarak kullanılan son kullanıcı dostu bir yazılımdır. pfSense, Snort, Squid, SquidGuard vb. üçüncü taraf paketlerinin Paket Yöneticisi aracılığıyla yüklenmesini destekler. Devamını Oku

pfSense logo

pfSense 2.3.2 için Captive Portal ve Hotpsot Ghost Panel

Lütfen okuyun 1
Bu makale pfSense nin sürüm güncellemeleri sebebiyle bazı sistemlerde çalışmaz hale gelmektedir. MySQL, freeRADIUS, PHP ve gerekli paketlerin kurulumu ve Ghost panelin daha kullanıcı dostu bir arabirimle değiştirilmesini kapsayan bir proje yazmaya başladım. Siz değerli ziyaretçilerim buradan QHotspot projesine erişebilir, bilginiz var ise projeye katkıda bulunabilirsiniz. Şimdiden teşekkürler.

Lütfen okuyun 2
QHotspot projesi iş yoğunluğunda yavaş ilerlediği için mevcut ghost panelinde çalışmasını sağlamak adına projeye ghost adında bir branch oluşturdum. Sitede verilen yönergeleri takip etmeniz durumunda size sadece captive portal a index.html hata.html ve gerekli dosyaları eklemeniz kalıyor. Gerekli bilgilere buradan ulaşabilirsiniz. Kurulum Videosu: https://youtu.be/VHfOwj6Ljn0

Lütfen okuyun 3
Aşağıdaki bilgiler geçerliliğini yitirmiş olabilir.

Captive Portal Karşılama Ekranı
Captive portal karşılama ekranını buradan indirebilirsiniz.

Merhabalar,

Bildiğiniz üzere pfSense 2.3 sürümü ile birlikte bir çok değişiklik meydana geldi. Bu değişiklikler ile çalışmakta olan captive portal TC Kimlik doğrulama sistemi ve Ghost Radius sistemi çalışmaz hale geldi.

Sebebi, hem ghost hem de captive portal kodlarının mysqli uyumlu olmaması idi.

Geçtiğimiz günlerde bende kullandığım bir kaç firmada pfSenseyi yükseltmek zorunda kaldım ve bu sorun yüzünden captive portalı kullanamaz oldum.
Captive portal’ın login ekranındaki bir kaç javascript sorunu zaten dikkatimi çekiyordu. Bahane ile onları da kapsayacak bir düzenleme yaptım. Devamını Oku

QLTOLabel – IBM LTO Etiket Oluşturucu

Barkod destekli bir LTO yedekleme ünitesi kullanıyorsanız teyp kartuşlarının barkod etiketleri bittiğinde yeni etiket bulmakta sorun yaşayabilirsiniz. İnternet üzerinde bu etiketleri oluşturan türlü siteler mevcut. Fakat büyük çoğunluğu ücretli yada ücretsiz olanları pek işe yaramaz. Devamını Oku

Windows 8, 8.1, 10, Server 2012/2016 R2 İşletim Sistemlerinde WinSxS Klasörünü Temizlemek

Özellikle SSD (Solid State Disk) kullanıyorsanız ve Microsoft Windows 8, 8.1 yada Server 2012 işletim sistemlerinden birine sahipseniz belirli bir süre sonra sistemin kurulu olduğu diskinizde yer kalmayabilir. Ufak bir araştırma yaptığınızda C:\Windows\WinSxS klasörünün gigabyte’larca yer kapladığının farkına varırsınız.

Nedir bu WinSxS ?

Microsoft şöyle tanımlamış;
Windows bileşen deposu (C:\Windows\winsxs) dizini, Windows kurulumları içindeki bakım işlemleri sırasında kullanılır. Bakım işlemlerinin bazıları Windows Update, hizmet paketi ve düzeltme yüklemeleridir, ancak bunlarla sınırlı değildir. Bileşen deposu bir Windows kurulumu için gerekli olan tüm dosyaları içerir. Bu dosyalara yönelik tüm güncelleştirmeler de güncelleştirmelerin yüklendiği sırada bileşen deposu içinde tutulur. Bu da zaman içinde kuruluma yeni güncelleştirmeler, özellikler veya roller eklendikçe bileşen deposunun büyümesine yol açar. Bileşen deposu Windows platformunun sağlamlığını artırmak için kendisi ile diğer Windows dizinleri arasında NTFS sabit bağlantıları kullanır. Kaynak

Devamını Oku

YUMI – Multiboot USB Disk Oluşturma Yazılımı

Geçenlerde bir arkadaşımın bilgisayarına işletim sistemini yeniden kurmam gerekti. Sistemde CDROM olmadığından USB üerinden bir çözüm araştırdım. Zaten uzun zamandır aklımda olan bir USB Flash Diskte birden fazla işletim sistemini bulundurup kurma fikrimi de bahane ile hayata geçireyim dedim.

Devamını Oku

İl İlçe Semt Mahalle Köy Plaka Posta Kutusu Veritabanı

Adres – İl – İlçe – Semt – Mahalle – Köy – Plaka – Posta Kodu Veritabanı

Eğer yazılımcı biri iseniz yada işiniz gereği adres oluştururken il, ilçe, semt, mahalle, köy, plaka, posta kodu bilgisine ihtiyaç duyuyorsanız bu konu sizi çok ilgilendirmektedir.

PTT[ref]PTT Posta Kodu Sorulama Servisi[/ref] den aldığım adres – il – plaka – ilçe – semt – mahalle – köy – posta kodu veritabanını normal kullanıcıların ve biz programcıların kullanabileceği formatta sizlere sunuyorum.

Bu formatlar ;

  • SQL Azure
  • Microsoft SQL
  • MySQL
  • ORACLE
  • PostgreSQL
  • SQLite
  • Microsoft Excel 2003 ve öncesi (xls)
  • Microsoft Excel 2007 ve sonrası (xlsx)

Codec olarakta ;

  • ANSI (1254 Turkish)
  • UTF8 (generic)

kullanılmıştır.
Devamını Oku

Spam Blacklist (Kara Liste) Kontrolü

Bazen e-posta göndermek istediğimizde gönderdiğimiz e-postalar gönderdiğimiz kişinin Spam/Junk/Önemsiz posta klasörüne düşer. Bunun başlıca sebebi e-posta hizmeti aldığımız sunucunun yada o anda internete bağlı olduğumuz ip adresinin Spam Blacklist dediğimiz kara listelerde bulunmasıdır. E-postayı kabul eden karşıdaki sunucular e-postanın üst bilgilerinden gönderen sunucu ve client (kullanıcı)’nın IP adresini bu kara listelerden kontrol eder. Eğer IP adresi bu kara listelerde ise bu e-postanın önemsiz olduğu düşünülerek direk önemsiz olarak görür. Sunucu sahiplerinin ve sabit IP kullanıcılarının periyodik olarak Spam Blacklist’lerinde ip adreslerinin bulunup bulunmadığını kontrol etmesi gereklidir.

Gelelim konumuza;

Bütün bu kontrolleri tek tık ile bir çok popüler blacklist’ten kontrol edebilir. Blacklist’e girmiş olan IP adreslerinizi kaldırma yöntemlerini görebilirsiniz. Ayriyeten SMTP sunucunuzun detaylı testlerini de yapabilirsiniz.

İlgili site için buyurun ; MXToolbox

Güncelleme (02.02.2018) : RBL Check Daha kapsamlı bir site.