Siber Güvenlikte Ping Komutu
Ping, ağ yönetimi ve siber güvenlik dünyasının en temel teşhis araçlarından biridir. Bir sistemin erişilebilir olup olmadığını, ağ gecikmesini ve bağlantı kalitesini ölçmek için kullanılır. Hem sistem yöneticileri hem de siber güvenlik uzmanları tarafından günlük olarak kullanılan vazgeçilmez araçlardan biridir.
Ping komutu, hedef sisteme ICMP (Internet Control Message Protocol) Echo Request paketi gönderir ve karşılığında ICMP Echo Reply paketi bekler.
Ping Nedir?
Ping kelimesi, denizaltı sonar sistemlerinin çıkardığı "ping" sesinden gelir.
Temel çalışma mantığı:
Kaynak sistem ICMP Echo Request paketi gönderir.
Hedef sistem paketi alır.
Hedef sistem ICMP Echo Reply gönderir.
Kaynak sistem cevap süresini ölçer.
Basit Şema
Saldırgan/Admin|| ICMP Echo RequestvHedef Sistem|| ICMP Echo ReplyvSaldırgan/Admin
ICMP Protokolü
Ping, TCP veya UDP kullanmaz.
Bunun yerine:
Ağ Katmanı (Layer 3)
ICMP Protokolü
kullanılır.
Önemli ICMP Türleri:
| Tür | Açıklama |
|---|---|
| 0 | Echo Reply |
| 3 | Destination Unreachable |
| 5 | Redirect |
| 8 | Echo Request |
| 11 | Time Exceeded |
Temel Kullanım
Linux
ping 8.8.8.8
Windows
ping 8.8.8.8
Örnek çıktı:
64 bytes from 8.8.8.8:icmp_seq=1 ttl=117 time=24.5 ms
Çıktının Analizi
64 bytes from 8.8.8.8:icmp_seq=1 ttl=117 time=24.5 ms
64 bytes
Gönderilen veri boyutu.
icmp_seq
Paket sıra numarası.
ttl
Time To Live.
time
Gidiş-dönüş süresi (RTT).
TTL Nedir?
TTL, paketin ağ üzerinde geçebileceği maksimum yönlendirici sayısını belirtir.
Örnek:
TTL=64
Linux sistemlerde sıklıkla görülür.
TTL=128
Windows sistemlerde yaygındır.
Siber Güvenlik Açısından
TTL değerlerinden işletim sistemi tahmini yapılabilir.
| TTL | Olası Sistem |
|---|---|
| 64 | Linux |
| 128 | Windows |
| 255 | Ağ Cihazı |
Bu yöntem pasif işletim sistemi tespitinde kullanılabilir.
Ping ile Ağ Teşhisi
İnternet Bağlantısını Test Etme
ping 8.8.8.8
Başarılı sonuç:
Reply from 8.8.8.8
Başarısız sonuç:
Request timed out
DNS Sorunu Tespiti
IP çalışıyor ancak alan adı çalışmıyorsa:
ping google.com
Sonuç:
Ping request could not find host
DNS problemi olabilir.
Paket Kaybı Analizi
Örnek:
Packets: Sent = 100Received = 95Lost = 5
%5 paket kaybı vardır.
Siber güvenlik uzmanları bunu:
Ağ saldırıları
DDoS etkileri
Donanım sorunları
için inceler.
Linux Ping Parametreleri
Belirli Sayıda Paket Gönderme
ping -c 5 8.8.8.8
5 paket gönderir.
Süre Belirleme
ping -w 10 8.8.8.8
10 saniye çalışır.
Paket Boyutu Belirleme
ping -s 1400 8.8.8.8
1400 byte veri gönderir.
Sürekli Hızlı Ping
ping -i 0.2 8.8.8.8
200 ms aralıklarla gönderir.
Windows Ping Parametreleri
Paket Sayısı
ping -n 5 8.8.8.8
Paket Boyutu
ping -l 1400 8.8.8.8
Sonsuz Ping
ping -t 8.8.8.8
Durdurmak için:
CTRL+C
Siber Güvenlikte Ping Kullanımı
1. Host Discovery
Bir ağda canlı sistemleri tespit etmek için kullanılır.
Örnek:
for i in {1..254}doping -c 1 192.168.1.$idone
Amaç:
Aktif cihazları bulmak
Ağ haritası çıkarmak
2. Ağ Keşfi
Bir sızma testi sırasında:
ping 192.168.1.10
cevap veriyorsa:
Sistem açık
Ağ erişimi mevcut
olabilir.
3. Firewall Analizi
Bazı güvenlik duvarları ICMP'yi engeller.
Örnek:
Request timed out
Bu durum:
Sistem kapalı olabilir
Firewall ICMP engelliyor olabilir
anlamına gelir.
4. DDoS Ön Analizi
Yüksek gecikme:
time=1500ms
Ağda:
DDoS
Yoğun trafik
Tıkanıklık
olabileceğini gösterebilir.
Ping Sweep
Ping Sweep, bir ağdaki tüm IP adreslerine ping göndererek canlı sistemleri tespit etme işlemidir.
Örnek mantık:
192.168.1.1192.168.1.2192.168.1.3...192.168.1.254
Canlı olanlar listelenir.
Nmap ile Ping Sweep
Yetkili ağ keşiflerinde:
nmap -sn 192.168.1.0/24
Bu yöntem klasik ping döngülerinden daha hızlı ve güvenilirdir.
Wireshark ile Ping Analizi
Filtre:
icmp
Görülebilecek paketler:
Echo RequestEcho Reply
İncelenebilecek bilgiler:
Kaynak IP
Hedef IP
TTL
Gecikme
Paket boyutu
Güvenlik Riskleri
Ping masum görünse de bilgi sızdırabilir.
Örneğin:
Sistem aktif mi?
İşletim sistemi tahmini
Ağ yapısı
Firewall davranışı
hakkında ipuçları verebilir.
Bu nedenle kritik sistemlerde ICMP kısıtlanabilir.
Saldırganların Ping Kullanımı
Yetkisiz faaliyetlerden kaçınmak şartıyla, saldırganların ilk aşamada yaptığı işlemlerden biri canlı sistemleri belirlemektir.
Tipik süreç:
Keşif↓Canlı Host Bulma↓Port Tarama↓Servis Analizi
Ping genellikle keşif aşamasında kullanılır.
Ping ve Nmap Karşılaştırması
| Özellik | Ping | Nmap |
|---|---|---|
| Canlı Host Tespiti | ✓ | ✓ |
| Port Tarama | ✗ | ✓ |
| Servis Tespiti | ✗ | ✓ |
| OS Tespiti | Kısıtlı | Gelişmiş |
| Hız | Çok Hızlı | Orta |
En Sık Karşılaşılan Hatalar
Request Timed Out
Request timed out
Olası nedenler:
Hedef kapalı
Firewall engeli
Ağ sorunu
Destination Host Unreachable
Destination Host Unreachable
Olası nedenler:
Yanlış rota
Ağ geçidi sorunu
Unknown Host
Unknown Host
Olası nedenler:
DNS hatası
Yazım hatası
Siber Güvenlik Uzmanları İçin Önemli İpuçları
✅ Her zaman önce ping ile bağlantıyı doğrulayın.
✅ Yüksek gecikmeleri inceleyin.
✅ TTL değerlerini analiz edin.
✅ Paket kaybını takip edin.
✅ ICMP trafiğini Wireshark ile doğrulayın.
✅ Kritik ağlarda ICMP filtreleme politikalarını kontrol edin.
Sonuç
Ping komutu, basit görünmesine rağmen ağ teşhisi, olay müdahalesi, güvenlik izleme ve sistem yönetimi süreçlerinde son derece önemli bir araçtır. Bir siber güvenlik uzmanı için ping; erişilebilirlik testi, ağ keşfi, gecikme ölçümü, paket kaybı analizi ve temel keşif faaliyetlerinin başlangıç noktasıdır. Nmap, Wireshark, tcpdump ve diğer güvenlik araçlarıyla birlikte kullanıldığında ağ görünürlüğünü artıran güçlü bir teşhis mekanizması sağlar.
"Ping" komutu, genellikle internet bağlantımızın çalışıp çalışmadığını kontrol ettiğimiz masum bir ağ aracı olarak bilinse de, siber güvenlik perspektifinden bakıldığında hem saldırganlar (Red Team) hem de savunmacılar (Blue Team) için kritik bir bilgi toplama ve manipülasyon aracıdır.
Bir Ağ Aracının Anatomisi
1. Ping Nedir ve Nasıl Çalışır?
Ping, temelde ICMP (Internet Control Message Protocol) adlı protokolü kullanır. Bir bilgisayar, hedef cihaza ulaşılabilirliği test etmek için bir "Echo Request" (Yankı İsteği - Tip 8) paketi gönderir. Hedef cihaz ayaktaysa ve ICMP paketlerini engellemiyorsa, kaynağa bir "Echo Reply" (Yankı Yanıtı - Tip 0) paketi döndürür.
Güvenlik açısından Ping'in önemi, ağda hangi cihazların "hayatta" (up) olduğunu tespit etmesinden ve iki nokta arasındaki ağ politikaları hakkında ipuçları vermesinden kaynaklanır.
2. Siber Güvenlikte Ping'in Kullanım Alanları (Keşif Aşaması)
Siber saldırıların ilk aşaması bilgi toplamadır (Reconnaissance). Ping, bu aşamada ağ haritasını çıkarmak için sıkça kullanılır.
A. Ağ Keşfi ve Ping Sweep (Ping Taraması)
Saldırganlar veya sızma testi uzmanları (pentesters), bir ağdaki aktif cihazları bulmak için tek tek IP'leri denemek yerine Ping Sweep yaparlar. Belirli bir IP aralığındaki tüm adreslere otomatik olarak ICMP istekleri gönderilir.
Örnek (Linux):
fping -a -g 192.168.1.0/24veya Nmap kullanılaraknmap -sn 192.168.1.0/24Sonuç: Ağdaki hangi IP adreslerinin kullanımda olduğu tespit edilir, bu da saldırı yüzeyini daraltır.
B. İşletim Sistemi Tespiti (OS Fingerprinting)
Ping komutunun çıktısındaki TTL (Time To Live - Yaşam Süresi) değeri, hedef cihazın işletim sistemi hakkında güçlü ipuçları verir. TTL, bir paketin ağda sonsuza kadar dolaşmasını engellemek için yönlendiriciler (router) tarafından her geçişte 1 azaltılan bir değerdir. Varsayılan başlangıç TTL değerleri şöyledir:
Linux/Unix: Genellikle 64
Windows: Genellikle 128
Ağ Cihazları (Cisco vb.): Genellikle 255 (Not: Araya giren yönlendirici sayısına göre bu değerler çıktıda biraz daha düşük görünebilir.)
3. Ping Tabanlı Siber Saldırı Vektörleri
Ping sadece bilgi toplamak için değil, doğrudan saldırı amacıyla da kullanılabilir.
A. Ping of Death (Ölüm Pingi)
Tarihsel ama öğretici bir saldırı türüdür. IP protokolüne göre bir paketin maksimum boyutu 65.535 bayt olabilir. Eski sistemlerde, saldırganlar bu boyutu aşan parçalanmış (fragmented) ICMP paketleri gönderdiğinde, hedef sistem bu paketleri birleştirirken bellek taşması (buffer overflow) yaşar ve çökerdi. Modern işletim sistemleri bu zafiyete karşı yamalanmıştır.
B. Ping Flood (Ping Seli - DoS)
En basit Denial of Service (DoS) saldırılarından biridir. Saldırgan, hedefin bant genişliğini veya işlemci gücünü tüketmek için aralıksız ve çok hızlı bir şekilde (flood) devasa boyutta ICMP paketleri gönderir.
Parametre Örneği (Linux):
ping -f -s 1000 <Hedef_IP>(-f: Flood modu, yalnızca root ile çalışır. -s: Paket boyutu)
C. Smurf Saldırısı (Kuvvetlendirilmiş DoS)
Zekice kurgulanmış bir saldırıdır. Saldırgan, IP adresini hedef kurbanın IP adresiymiş gibi değiştirir (IP Spoofing) ve bir ağın yayın adresine (broadcast) ICMP Echo Request gönderir. Ağdaki yüzlerce cihaz, yanıtı saldırgana değil, sahte kaynak IP'ye (kurbana) gönderir. Böylece kurban, binlerce cihazdan gelen "Echo Reply" paketleriyle boğularak çöker.
D. ICMP Tunneling (Veri Sızdırma / C&C İletişimi)
Gelişmiş tehdit aktörlerinin (APT) başvurduğu sinsi bir yöntemdir. Çoğu güvenlik duvarı web (HTTP) veya e-posta (SMTP) trafiğini sıkı denetlerken, ICMP trafiğini gözden kaçırabilir. Saldırganlar, çalınan verileri veya komuta-kontrol (C&C) talimatlarını ICMP paketlerinin veri yükü (payload) kısmına gizleyerek güvenlik duvarlarını atlatırlar.
4. Güvenlik Denetimlerinde Sık Kullanılan Ping Parametreleri
Kendi ağınızı test ederken veya sorun giderirken şu parametreler güvenlik açısından değerlidir:
Linux için
-c/ Windows için-n(Sayı Belirleme): Gönderilecek paket sayısını belirler. Sınırsız gönderimi engeller.Komut:
ping -c 4 192.168.1.1
Linux için
-i(Aralık Belirleme): Paketler arasındaki süreyi ayarlar. Güvenlik sistemlerini (IDS/IPS) tetiklememek için "Yavaş" (stealth) taramalar yaparken kullanılır.Komut:
ping -i 5 192.168.1.1(5 saniyede bir paket)
Linux için
-R(Record Route): Paketin hedefe giderken hangi yönlendiricilerden geçtiğini kaydeder (Ağ topolojisini anlamak için).
5. Savunma ve Sıkılaştırma (Mitigation)
Sistem yöneticileri ping tabanlı tehditleri azaltmak için şu adımları uygulamalıdır:
WAN Üzerinde ICMP'yi Kısıtlamak: İnternetten (dışarıdan) gelen ICMP Echo Request paketlerini güvenlik duvarında (Firewall) engellemek (Drop/Deny), sunucuların dışarıdan keşfedilmesini zorlaştırır.
Rate Limiting (Hız Sınırlandırması): ICMP trafiğini tamamen kapatmak ağ sorunlarını çözmeyi zorlaştırabilir. Bunun yerine saniyede kabul edilecek ping isteği sayısına sınır konulmalıdır (örneğin:
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT).Yayın (Broadcast) Yanıtlarını Kapatmak: Smurf saldırılarını engellemek için yönlendiricilerin broadcast adreslerine gelen pinglere yanıt vermesi engellenmelidir.
IDS/IPS Kullanımı: Anormal boyuttaki ICMP paketlerini veya ICMP tünelleme şüphelerini tespit etmek için Saldırı Tespit Sistemleri yapılandırılmalıdır.
Özetle; Ping komutu, siber güvenlikte iki tarafı keskin bir kılıç gibidir. Ağ yapısını anlamak için eşsiz bir yardımcıyken, yanlış yapılandırılmış ağlarda bir DoS silahına veya veri sızdırma kanalına dönüşebilir.
Özellikle laboratuvar ortamlarında veya merkezi yönetilen Linux sunucularında bu yapılandırmaların nasıl uygulandığına odaklanacağız.
1. Smurf Saldırısı (Kuvvetlendirilmiş DoS)
Smurf saldırısı, ağdaki yönlendirme kurallarının zafiyetini kullanan, "yansıtma" (reflection) ve "kuvvetlendirme" (amplification) tabanlı bir saldırıdır.
Teknik Anatomisi
IP Sızdırma (Spoofing): Saldırgan, ICMP Yankı İsteği (Echo Request) paketlerini oluştururken paketin "Kaynak IP" (Source IP) kısmına kendi adresini değil, hedef kurbanın IP adresini yazar.
Yayın Adresine Hedefleme: Saldırgan, bu sahte paketleri doğrudan kurbana göndermez. Bunun yerine, korumasız veya yanlış yapılandırılmış bir ağın Yayın Adresine (Broadcast Address - örneğin
192.168.1.255) gönderir.Kuvvetlendirme Etkisi: Paket ağın yayın adresine ulaştığında, ağdaki (örneğin) 100 farklı cihazın tümü bu paketi alır.
Yıkıcı Yanıt: Bu 100 cihazın her biri, protokole uygun olarak bir Yankı Yanıtı (Echo Reply) üretir. Ancak "Kaynak IP" olarak kurbanın adresi yazıldığı için, 100 cihaz da yanıtı kurbana gönderir. Saldırgan 1 paket gönderirken, kurban 100 paketle boğulur.
Güvenlik Duvarı / Sistem Üzerinde Engelleme (Mitigation)
Bir ağın Smurf saldırısında "kuvvetlendirici" (amplifikatör) olarak kullanılmasını engellemek için, cihazların yayın adreslerine (broadcast) gelen ICMP paketlerine yanıt vermesi kapatılmalıdır. Linux sistemlerinde bu işlem Çekirdek (Kernel) parametreleri değiştirilerek yapılır.
Geçici olarak engellemek için terminalde şu komut kullanılır:
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
Kalıcı hale getirmek için /etc/sysctl.conf dosyasının içine şu satır eklenir ve ağ servisi veya sunucu yeniden başlatılır:
net.ipv4.icmp_echo_ignore_broadcasts = 1
Ayrıca, yönlendirici (router) arayüzlerinde "Directed Broadcast" özelliğinin kapalı olduğundan (örneğin Cisco cihazlarda no ip directed-broadcast) emin olunmalıdır.
2. ICMP Tunneling (Veri Sızdırma ve C&C)
Geleneksel güvenlik duvarları, bağlantı noktalarını (TCP/UDP portları) filtreler. Ancak ICMP port tabanlı çalışmaz ve çoğu ağda sorun giderme amacıyla açık bırakılır. Saldırganlar bu "güvenilir" kanalı istismar eder.
Teknik Anatomisi
Standart bir ICMP Yankı İsteği paketinde, hedef cihazın aynen geri döndürmesi gereken bir "Veri (Data)" veya "Yük (Payload)" alanı bulunur. Normal şartlarda bu alan anlamsız rastgele baytlarla (örneğin alfabenin harfleriyle) doldurulur.
Saldırgan (veya içerideki zararlı yazılım), bu veri alanındaki rastgele harfleri siler ve yerine şifrelenmiş komutlar veya dışarı sızdırılacak gizli dosyaların parçalarını yerleştirir.
Dışarıdaki bir saldırgan sunucusu (C&C Server), bu ICMP paketini alır, payload kısmındaki veriyi okur ve yanıtı yine ICMP paketi içine gizleyerek içeri gönderir.
Kullanılan Araçlar:
ptunnel,icmptunnelveyahansgibi araçlar bu paketleri otomatik oluşturup bir "sanal ağ arabirimi" (VPN gibi) kurabilir.
Güvenlik Duvarı / Sistem Üzerinde Engelleme (Mitigation)
ICMP Tunneling'i engellemek biraz daha zordur çünkü meşru ping trafiğini bozmadan zararlı trafiği ayıklamak gerekir.
A. Paket Boyutu Sınırlaması (iptables ile): Tünelleme araçları veri taşımak zorunda olduğu için ICMP paket boyutlarını genellikle büyütürler. Normal bir ping paketi 64-84 bayt civarındadır. İzin verilen ICMP paket boyutunu kısıtlayarak tünelleri kırabilirsiniz:
iptables -A INPUT -p icmp --icmp-type echo-request -m length --length 85:65535 -j DROP
(Bu kural, 85 bayttan büyük gelen ping isteklerini düşürür.)
B. Oran Sınırlandırması (Rate Limiting): Tünel üzerinden mantıklı bir veri transferi (örneğin bir dosya indirme/yükleme) yapabilmek için saniyede binlerce ICMP paketi gönderilmesi gerekir. Hız sınırı koymak, tünelleme hızını "Dial-up" döneminden bile yavaş hale getirerek işlevsiz kılar:
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPTiptables -A INPUT -p icmp --icmp-type echo-request -j DROP(Bu kurallar, saniyede en fazla 1 ping isteğine izin verir, geri kalan spam veya tünelleme paketlerini reddeder.)
C. Derin Paket İncelemesi (DPI): En kesin çözüm, IDS/IPS (Örn: Snort, Suricata) kullanarak ICMP paketlerinin "Yük" (Payload) kısımlarını taramak ve standart dışı (şifrelenmiş veya anlamsız büyük) verileri tespit etmektir.
ve 11. sınıf bilişim teknolojileri laboratuvar uygulamaları için öğrencilerin Packet Tracer üzerindeki topoloji kurulumlarını, siber saldırı simülasyonunu ve ACL tabanlı savunma yapılandırmalarını hızlıca ölçebileceğiniz kapsamlı bir değerlendirme matrisi (rubrik) hazırladım.
Bu matrisi fiziksel bir çıktı olarak kullanabileceğiniz gibi, yüzlerce öğrencinin sonucunu tek bir merkezden hesaplayabilmeniz için openpyxl kütüphanesini kullanan otomatik bir Python puanlama betiği ile de destekledim.
1. Packet Tracer Laboratuvarı Değerlendirme Matrisi (100 Tam Puan)
Öğrencilerin ağ temel bilgilerini ve güvenlik yapılandırmalarını ne kadar kavradıklarını adım adım ölçen kriter tablosu:
| Değerlendirme Kriteri | Beklenen Gerçekleşme (Gösterge) | Puan Değeri |
| Ağ Topolojisinin Kurulumu | Yönlendirici (Router), Ağ Anahtarı (Switch), Sunucu ve 3 adet İstemci (PC) çalışma alanına doğru şekilde eklenmiş mi? | 15 Puan |
| IP Adresleme ve Bağlantı | Cihazların IP adresleri ve alt ağ maskeleri (Subnet Mask) senaryoya uygun girilmiş mi? Uçtan uca normal ping atılabiliyor mu? | 15 Puan |
| Saldırı Simülasyonu (Red Team) | Saldırgan PC üzerinden -l (boyut) ve -t (sürekli) parametreleri kullanılarak sunucuya doğru bir Ping Flood saldırısı başlatılabilmiş mi? | 20 Puan |
| Ağ Trafiği Analizi | Simülasyon modunda ICMP paket yığılması gözlemlenmiş ve bant genişliğinin tükendiği (Drop edilen paketler) tespit edilmiş mi? | 15 Puan |
| ACL Yapılandırması (Blue Team) | Yönlendirici (Router) CLI ekranında, sadece sunucuya giden ICMP Echo Request paketlerini engelleyen Genişletilmiş ACL (access-list 100 deny icmp...) doğru yazılmış mı? | 25 Puan |
| Savunmanın Doğrulanması | ACL kuralı GigabitEthernet arayüzüne uygulanmış (ip access-group 100 in) ve saldırgan bilgisayardan atılan pinglerin yönlendiriciden dönmesi sağlanmış mı? | 10 Puan |
| Toplam | 100 Puan |
2. Python (openpyxl) ile Otomatik Sınav Değerlendirme Aracı
Laboratuvardaki öğrenci sayısının fazla olduğu durumlarda, yukarıdaki kriterlere göre öğrencilerin aldığı notları (0 veya tam puan şeklinde) Excel'e hızlıca girip, toplam notları ve başarı durumlarını otomatik hesaplayan, hücreleri renklendiren bir değerlendirme betiği iş yükünüzü ciddi oranda hafifletecektir.
import openpyxlfrom openpyxl.styles import Font, PatternFill, Alignment
def laboratuvar_sonuclari_hesapla(girdi_dosyasi, cikti_dosyasi):
# Excel dosyasını yükle
wb = openpyxl.load_workbook(girdi_dosyasi)
sheet = wb.active
# Başlık satırını düzenle ve stillendir
basliklar = ["Öğrenci No", "Ad Soyad", "Topoloji (15)", "IP Ayarları (15)", "Saldırı (20)", "Analiz (15)", "ACL (25)", "Doğrulama (10)", "TOPLAM PUAN", "DURUM"]
for col_num, baslik in enumerate(basliklar, 1):
cell = sheet.cell(row=1, column=col_num)
cell.value = baslik
cell.font = Font(bold=True, color="FFFFFF")
cell.fill = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")
cell.alignment = Alignment(horizontal="center")
# Öğrenci satırlarını dön ve hesaplamaları yap
# Varsayım: Öğrenci verileri 2. satırdan başlıyor
for row in range(2, sheet.max_row + 1):
toplam_puan = 0
# C sütunundan H sütununa kadar (Kriter 1 - Kriter 6) notları topla
for col in range(3, 9):
puan = sheet.cell(row=row, column=col).value
if type(puan) in (int, float):
toplam_puan += puan
# Toplam Puanı yazdır
sheet.cell(row=row, column=9).value = toplam_puan
# Durumu belirle ve renklendir (Geçme notu 50 kabul edilmiştir)
durum_hucresi = sheet.cell(row=row, column=10)
if toplam_puan >= 50:
durum_hucresi.value = "BAŞARILI"
durum_hucresi.fill = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")
durum_hucresi.font = Font(color="006100", bold=True)
else:
durum_hucresi.value = "BAŞARISIZ"
durum_hucresi.fill = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid")
durum_hucresi.font = Font(color="9C0006", bold=True)
# Sütun genişliklerini otomatik ayarla
for col in sheet.columns:
max_length = 0
column_letter = col[0].column_letter
for cell in col:
try:
if len(str(cell.value)) > max_length:
max_length = len(cell.value)
except:
pass
adjusted_width = (max_length + 2)
sheet.column_dimensions[column_letter].width = adjusted_width
# Sonuçları kaydet
wb.save(cikti_dosyasi)
print(f"Değerlendirme tamamlandı. Sonuçlar '{cikti_dosyasi}' dosyasına kaydedildi.")
# Kullanım Örneği:
# laboratuvar_sonuclari_hesapla("9lar_ag_lab_ham_notlar.xlsx", "9lar_ag_lab_sonuclar.xlsx")Bu Python betiği sayesinde tek yapmanız gereken, öğrencilerin her bir kriteri geçip geçmediğini (örneğin 15, 20 gibi değerler vererek) bir Excel dosyasına girmek. Betik çalıştırıldığında toplam puanları hesaplayıp görsel bir rapor tablosu olarak yeni bir Excel dosyası üretecektir.
Yorumlar