Herkese selamlar TurkHackTeam ailesi,
Bugün, kendi yazmış olduğum Python scripti ile herhangi bir web sitesinde;
WHOİS BİLGİLERİ
• Domain Oluşturulma Tarihi
• Domain Sahibi (Gizli Değilse)
• Domain Bitiş Tarihi
• Registrar (Kayıt Sağlayıcı)
IP VE LOKASYON BİLGİLERİ
• Site IP Adresi
• Site Lokasyonu
HTTP/HTTPS DURUMU
• SSL Sertifika Sorgulama
• SSL Sertifika Geçerlilik Başlangıç Tarihi
• SSL Sertifika Geçerlilik Bitiş Tarihi
• SSL Sertifika Veren Kurum
• HTTP Durum Kodu Bilgisi
• HTTP/HTTPS ve Sunucu Yanıt Başlıkları
DNS KAYITLARI
• A Kaydı (IP Adresleri)
• MX Kaydı (E-Posta Sunucuları)
• NS Kaydı (Name Server'lar)
• TXT Kayıtları (SPF, DMARC, Google Doğrulama metin kayıtları)
Gibi bilgileri görebileceksiniz.
Program kodları:
Program çıktısı:

Not: Test kendi web sitem içinde yapılmıştır. Bu aracı etik sınırlar içinde kullanmak sizlerin sorumluluğundadır. Program, özellikle yeni başlayan arkadaşlara genel bilgi vermek ve temel kavramları göstermek için tasarlanmıştır.
Başka bir konuda görüşmek dileğiyle, kendinize iyi bakın.

Bugün, kendi yazmış olduğum Python scripti ile herhangi bir web sitesinde;
WHOİS BİLGİLERİ
• Domain Oluşturulma Tarihi
• Domain Sahibi (Gizli Değilse)
• Domain Bitiş Tarihi
• Registrar (Kayıt Sağlayıcı)
IP VE LOKASYON BİLGİLERİ
• Site IP Adresi
• Site Lokasyonu
HTTP/HTTPS DURUMU
• SSL Sertifika Sorgulama
• SSL Sertifika Geçerlilik Başlangıç Tarihi
• SSL Sertifika Geçerlilik Bitiş Tarihi
• SSL Sertifika Veren Kurum
• HTTP Durum Kodu Bilgisi
• HTTP/HTTPS ve Sunucu Yanıt Başlıkları
DNS KAYITLARI
• A Kaydı (IP Adresleri)
• MX Kaydı (E-Posta Sunucuları)
• NS Kaydı (Name Server'lar)
• TXT Kayıtları (SPF, DMARC, Google Doğrulama metin kayıtları)
Gibi bilgileri görebileceksiniz.
Program kodları:
Python:
import socket
import ssl
import whois
import requests
import geocoder
import dns.resolver
from datetime import datetime
from pyfiglet import Figlet
SIFIRLA = "\033[0m"
KALIN = "\033[1m"
CAMGOBEGI = "\033[96m"
YESIL = "\033[92m"
SARI = "\033[93m"
KIRMIZI = "\033[91m"
MOR = "\033[95m"
def ascii_baslik_yazdir():
yazi = Figlet(font='slant')
print(CAMGOBEGI + yazi.renderText('voidsec.exe tht') + SIFIRLA)
print(f"{MOR}Basit Alan Adı Keşif Aracı — Python{SIFIRLA}\n")
def tarih_bicimlendir(tarih):
try:
if isinstance(tarih, list):
tarih = tarih[0]
return tarih.strftime('%Y-%m-%d %H:%M:%S') if tarih else "Bilinmiyor"
except Exception:
return "Geçersiz tarih"
def ssl_bilgisi_al(alan_adi):
ctx = ssl.create_default_context()
try:
with ctx.wrap_socket(socket.socket(), server_hostname=alan_adi) as baglanti:
baglanti.settimeout(5.0)
baglanti.connect((alan_adi, 443))
sertifika = baglanti.getpeercert()
return {
"konu": dict(x[0] for x in sertifika.get('subject', [])),
"veren": dict(x[0] for x in sertifika.get('issuer', [])),
"gecerli_baslangic": sertifika.get('notBefore', 'Yok'),
"gecerli_bitis": sertifika.get('notAfter', 'Yok')
}
except Exception as hata:
return {"hata": f"SSL bilgisi alınamadı: {hata}"}
def dns_kayitlarini_al(alan_adi):
kayitlar = {}
for kayit_turu in ["A", "MX", "NS", "TXT"]:
try:
cevaplar = dns.resolver.resolve(alan_adi, kayit_turu, lifetime=5)
if kayit_turu == "MX":
kayitlar[kayit_turu] = [str(r.exchange) for r in cevaplar]
elif kayit_turu == "TXT":
kayitlar[kayit_turu] = [b"".join(r.strings).decode("utf-8", "ignore") for r in cevaplar]
else:
kayitlar[kayit_turu] = [str(r) for r in cevaplar]
except:
kayitlar[kayit_turu] = ["Kayıt bulunamadı"]
return kayitlar
def site_bilgilerini_goster(alan_adi):
print(f"\n{KALIN}{CAMGOBEGI}Alan Adı: {alan_adi}{SIFIRLA}")
print(f"\n{KALIN}{CAMGOBEGI}[WHOIS BİLGİLERİ]{SIFIRLA}")
try:
bilgi = whois.whois(alan_adi)
print(f"{YESIL}Domain Sahibi : {bilgi.get('name', 'Bilinmiyor')}{SIFIRLA}")
print(f"{YESIL}Oluşturulma Tarihi : {tarih_bicimlendir(bilgi.creation_date)}{SIFIRLA}")
print(f"{YESIL}Son Güncelleme : {tarih_bicimlendir(bilgi.updated_date)}{SIFIRLA}")
print(f"{YESIL}Geçerlilik Sonu : {tarih_bicimlendir(bilgi.expiration_date)}{SIFIRLA}")
print(f"{YESIL}Registrar : {bilgi.get('registrar', 'Bilinmiyor')}{SIFIRLA}")
except Exception as e:
print(f"{KIRMIZI}WHOIS alınamadı: {e}{SIFIRLA}")
print(f"\n{KALIN}{CAMGOBEGI}[IP VE KONUM]{SIFIRLA}")
try:
ip_adresi = socket.gethostbyname(alan_adi)
print(f"{YESIL}IP Adresi : {ip_adresi}{SIFIRLA}")
konum = geocoder.ip(ip_adresi)
print(f"{YESIL}Konum : {konum.city or 'Bilinmiyor'}, {konum.country or 'Bilinmiyor'}{SIFIRLA}")
except Exception as e:
print(f"{KIRMIZI}IP/Konum alınamadı: {e}{SIFIRLA}")
print(f"\n{KALIN}{CAMGOBEGI}[HTTP/HTTPS DURUMU]{SIFIRLA}")
protokoller = ["https://", "http://"]
for protokol in protokoller:
try:
yanit = requests.get(protokol + alan_adi, timeout=5)
print(f"{SARI}{protokol.upper()} Durum Kodu: {yanit.status_code}{SIFIRLA}")
print(f"{MOR}Başlıklar:{SIFIRLA}")
for k, v in yanit.headers.items():
print(f"- {k}: {v}")
break
except Exception as e:
print(f"{KIRMIZI}{protokol.upper()} bağlantısı başarısız: {e}{SIFIRLA}")
print(f"\n{KALIN}{CAMGOBEGI}[SSL SERTİFİKASI]{SIFIRLA}")
ssl_bilgi = ssl_bilgisi_al(alan_adi)
if "hata" in ssl_bilgi:
print(f"{KIRMIZI}{ssl_bilgi['hata']}{SIFIRLA}")
else:
print(f"{YESIL}Geçerlilik Başlangıcı: {ssl_bilgi['gecerli_baslangic']}{SIFIRLA}")
print(f"{YESIL}Geçerlilik Bitişi : {ssl_bilgi['gecerli_bitis']}{SIFIRLA}")
print(f"{YESIL}Veren Kurum : {ssl_bilgi['veren'].get('organizationName', 'Bilinmiyor')}{SIFIRLA}")
print(f"\n{KALIN}{CAMGOBEGI}[DNS KAYITLARI]{SIFIRLA}")
dns_kayitlari = dns_kayitlarini_al(alan_adi)
for tur, degerler in dns_kayitlari.items():
print(f"{MOR}{tur} kayıtları:{SIFIRLA}")
for deger in degerler:
print(f"- {deger}")
if __name__ == "__main__":
try:
ascii_baslik_yazdir()
alan_adi = input(f"{KALIN}Alan adını girin (örnek: example.com): {SIFIRLA}").strip()
if alan_adi:
site_bilgilerini_goster(alan_adi)
else:
print(f"{KIRMIZI}Alan adı boş olamaz.{SIFIRLA}")
except KeyboardInterrupt:
print(f"\n{SARI}İşlem kullanıcı tarafından iptal edildi.{SIFIRLA}")
Program çıktısı:

Not: Test kendi web sitem içinde yapılmıştır. Bu aracı etik sınırlar içinde kullanmak sizlerin sorumluluğundadır. Program, özellikle yeni başlayan arkadaşlara genel bilgi vermek ve temel kavramları göstermek için tasarlanmıştır.
Başka bir konuda görüşmek dileğiyle, kendinize iyi bakın.
Son düzenleme:




