Aramayan Bulamaz
×
veya arama sorgusuna ait içerikleri görüntülemektesiniz.
C# ile Whois Sorgulama

Merhaba, whois sorgulaması bir web adresinin tescil süresi, kimin adına kayıtlı olduğu gibi bilgilerin öğrenilebilmesi adına yapılan sorgulamadır. Bu işlemi çeşitli whois siteleri aracılığı ile gerçekleştirebilirsiniz veya C# ile bir exe hazırlayarak bu exe üzerinden de sorgulama gerçekleştirebilirsiniz. C# üzerinden bu sorgulamayı yapabilmeniz için sorgulama yapılacak olan whois serverına TCP bağlantısı açılması gerekir. Örnek olarak aşağıdaki komutlar ile birlikte sorgulamayı gerçekleştirebilirsiniz.

TcpClient TCPC = new TcpClient("whois.verisign-grs.com", 43); string strDomain = "niyazialpay.com" + "\r\n"; byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain); Stream objStream = TCPC.GetStream(); objStream.Write(arrDomain, 0, strDomain.Length); StreamReader objSR = new StreamReader(TCPC.GetStream(), Encoding.ASCII); string icerik = Regex.Replace(objSR.ReadToEnd(), "\n", "
"); webBrowser1.DocumentText=icerik; TCPC.Close();

Bu sorgulama şekli ile yalnızca sınırlı sayıda uzantıların whois bilgilerini öğrenebilirsiniz. En sağlıklısı her uzantı için ayrı ayrı whois serverlarından sorgulama yapılmasıdır. Aşağıdaki bulunan kodlar ile birlikte bu işlemi gerçekleştirebilirsiniz.

using System; using System.Text; using System.Net.Sockets; using System.IO; using System.Text.RegularExpressions; namespace Cryptograph_Whois_DNS_Tools { public class whois { private string GetDomainName(string url) { var doubleSlashesIndex = url.IndexOf("://"); var start = doubleSlashesIndex != -1 ? doubleSlashesIndex + "://".Length : 0; var end = url.IndexOf("/", start); if (end == -1) end = url.Length; string domainname = url.Substring(start, end - start); if (domainname.StartsWith("www.")) domainname = domainname.Substring("www.".Length); return domainname; } private stri

Bash Script ile Otomatik Iptables Kuralları Tanımlama

Bir başka konumda temel Iptables kullanımı ile ilgili bilgi vermiştim. Iptables üzerinde çok işlem yapıyorsanız eğer, yeni IP adreslerine izin tanımlama farklı portlara izin tanımlama gibi, sürekli sürekli aynı komutları yazmak sıkıcı gelebilir. Aşağıdaki paylaştığım script ile bu işlemi kısa sürede halledebilirsiniz.

#!/bin/bash # Muhammed Niyazi ALPAY # https://niyazi.org function iptablesrules(){ echo "" echo "==========================================================" echo "" read -p "IP adreslerini aralarında virgül ile birlikte giriniz: " ipaddresses echo "" read -p "Port numaralarını aralarında virgül ile birlikte giriniz: " ports echo "" echo 0 > /proc/sys/net/ipv4/ip_forward iptables -A INPUT -p tcp -m multiport --dports $ports -s 127.0.0.1,$ipaddresses -j ACCEPT iptables -A INPUT -p udp -m multiport --dports $ports -s 127.0.0.1,$ipaddresses -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports $ports -j DROP iptables -A INPUT -p udp -m multiport --dports $ports -j DROP echo 1 > /proc/sys/net/ipv4/ip_forward echo "" echo "==========================================================" echo "" echo "İşlem başarı ile tamamlandı." echo "" echo "==========================================================" echo "" } read -p "Önceki Iptables kuralları silinsin mi? (e ya da h) " removerule if [ ${removerule} == "e" ]; then echo "Iptables kuralları silindi" iptables --flush elif [ ${removerule} == "h" ]; then echo "" else echo "Lütfen e veya h olarak giriş yapın" fi iptablesrules condition_to_check="False" while [[ ${condition_to_check} == "False" ]]; do read -p "İşleme devam edilsin mi? (e ya da h) " query if [ ${query} == "h" ]; then condition_to_check="True" elif [ ${query} == "e" ]; then iptablesrules else echo "Lütfen e veya h olarak giriş yapın" fi done chkconfig iptables on service iptables save echo "" echo "===========

Linux Sunucu Üzerinde Web Siteleri İçin Toplu Olarak Dizin ve Dosya İzinlerinin Yapılandırılması

Linux sunucu üzerinde bulunan web siteleri için dosya ve dizinlerin yazılabilirlik ayarlarını yapmak bazen zaman alabiliyor. Örneğin FileZilla ile alt dizinler seçeneği seçilip sadece klasörlere uygula işaretlendiğinde veya sadece dosyalara uygula seçildiğinde FTP üzerindeki dosya miktarına göre işlem uzun sürebiliyor. SSH üzerinden yalnızca chmod komutu ile de işlem yapıldığında da ya tüm alt klasörlerle birlikte herşeye izinler tanımlanır ya da tek bir dizin içerisinde bulunanlara. Aşağıdaki komut ile bulunduğunuz dizin ve alt dizinlerindeki dosya veya dizinlerin yazılabilirlik ayarlarını ayarlayabilirsiniz.

chmod 755 $(find /dosya-veya-dizin-yolu -type d) chmod 644 $(find /dosya-veya-dizin-yolu -type f)

-type d (directory) yalnzıca dizinleri belirtir, -type f (file) ise yalnızca dosyaları. Dizinlerin yazılabilirlik izinleri 755, dosyaların ise 644 olması gerekir. Her defasında sunucu üzerindeki farklı farklı siteler için dosya yolu veya dizin yolu yazmak yerine aşağıdaki komutları .sh uzantısı ile kaydedip sitenin bulunduğu dizin altında çalıştırmanız daha hızlı olacaktır.

#!/bin/bash directory=`pwd` chmod 755 $(find $directory -type d) chmod 644 $(find $directory -type f)

Burada dikkat edilmesi gereken şey bu .sh uzantılı dosya yalnızca sitenin bulunduğu dizinde çalıştırılmalıdır. Farklı bir yerde çalıştırılması sunucunun zarar görmesine sebep olabilir.

Temel Iptables Kullanımı

Iptables Linux bilgisayarlarda firewall olarak kullanılan bir yazılımdır. Iptables ile sisteminize gelen ve sisteminizden giden bağlantıları engelleyebilir, farklı bir yere yönlendirebilir veya izin verebilirsiniz. Iptables kurallar zinciri, bu kurallar zincirlerine ait parametreler ve bağlantı hedefleri ile birlikte çalışmaktadır.

Kural Zincirleri
INPUT Gelen paketleri tanımlamak için.
OUTPUT Giden paketleri tanımlamak için.
FORWARD Yönlendirilen paketleri tanımlamak için.
PREROUTING Sadece NAT için geçerlidir. Gelen paketlerin değiştirilmesi için.
POSTROUTING Sadece NAT için geçerlidir. Giden paketlerin değiştirilmsi için.

Kural Hedefleri
ACCEPT Paketlerin geçisine izin vermek için.
DROP Paketlerin geçişini reddetmek için.
REJECT Paketlerin erişimi reddedilir ve gönderici bu konuda bilgilendirilir.
RETURN Zincirin sonuna gönderilir.
QUEUE Paketler kullanıcı alanına gönderilir.

Kural Parametreleri
-A ZİNCİR Zincire kural ekler.
-E ZİNCİR Zinciri yeniden adlandırır.
-D ZİNCİR Zincirden bir kural siler.
-D ZİNCİR Zincirden belirtilen numaradaki kurali siler.
-L ZİNCİR Belirtilen zincirdeki kurallari gösterir.
-E ZİNCİR Zinciri yeniden adlandirir.
-l ZİNCİR Zincirde belirtilen numaralı alana kuralı ekler.
-R ZİNCİR Zincirde kuralın yerine başkasını koyar.
-R ZİNCİR Zincirde belirtilen numaralı alana bir başkasını koyar.
-N ZİNCİR Yeni bir zincir oluşturur.
-X ZİNCİR Kullanıcının eklediği bir zinciri siler.
-F ZİNCİR Zincirdeki kuralların tümünü siler.
-P ZİNCİR Zincire genel politika ekler.

Kural Seçenekleri
! Kuralı tersine çevirir.
-s Bağlantı sağlayacak adresi belirtmek içn kullanılır 127.0.0.1/255.0.0.0 gibi..
-p UDP,TCP,ICMP,ALL bağlantı protokollerini belirtmek içi

PHP Resim Upload ve Boyutlandırma Sınıfı

Merhabalar, sizlere hazırlamış olduğum resim boyutlandırma ve upload classını göstereceğim. Daha önceki konumda nesne tabanlı programlamadan bahsetmiştim. Şimdiki anlatacağım konu ise nesne tabanlı olarak resim boyutlandırma ve upload üzerine bir classdır
Fazla uzatmadan classı anlatmaya başlayım :)

<?php class ResimIslem{ public function watermark($filigran, $source_file_path, $output_file_path ) { list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path ); if ( $source_type === NULL ) { return false; } switch ( $source_type ) { case IMAGETYPE_GIF: $source_gd_image = imagecreatefromgif( $source_file_path ); break; case IMAGETYPE_JPEG: $source_gd_image = imagecreatefromjpeg( $source_file_path ); break; case IMAGETYPE_PNG: $source_gd_image = imagecreatefrompng( $source_file_path ); break; default: return false; } $overlay_gd_image = imagecreatefrompng($filigran); $overlay_width = imagesx( $overlay_gd_image ); $overlay_height = imagesy( $overlay_gd_image ); imagecopymerge( $source_gd_image, $overlay_gd_image, $source_width - $overlay_width, $source_height - $overlay_height, 0, 0, $overlay_width, $overlay_height, 60 ); imagejpeg( $source_gd_image, $output_file_path, 100 ); imagedestroy( $source_gd_image ); imagedestroy( $overlay_gd_image ); } public function resim_boyutlandir($resim,$k_resim,$max_en=1920,$max_boy=1200){ // içeriği başlat.. $resimdosyasi= pathinfo($resim); $uzanti=$resimdosyasi["extension"]; ob_star