Merhaba, önceki konumda C# ile whois sorgulamasının nasıl yapıldığını anlatmıştım. Bu konuda da C# ile hazırlamış olduğum whois sorgulaması ve DNS sorgulaması yapabileceğiniz bir uygulamayı paylaşacağım. Uygulamayı hazırlarken Heijden.DNS isimli hazır bir DLL dosyasından faydalandım. Uygulama içerisinde bir alan adının whois sorgulaması yapıldığı sırada aynı anda arkaplanda o sitenin DNS sorgulamasını da yapmakta. DNS penceresine geldiğinizde sonuçları görüntüleyebilirsiniz ve ayrıca IDN alan adları için bir çevirme aracı da mevcut. Uygulamayı aşağıdaki bağlantı üzerinden indirebilirsiniz ve kaynak dosyalarına Github üzerinden erişebilirsiniz.
https://depo.niyazialpay.com/CryptographWhoisDNSQueryTools.rar
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
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 "===========