İnternet dünyasında her cihazın bir kimliği vardır. Bu kimlik, IP adresi olarak adlandırılır. Günlük kullanımda çoğu kullanıcı IP adresinin ne olduğunu ya da nasıl çalıştığını çok fazla düşünmez. Ancak yazılım geliştirme, ağ yönetimi, siber güvenlik veya otomasyon gibi alanlarla ilgileniyorsanız, IP adresleri kritik bir öneme sahiptir.
Bu yazıda, özellikle Python kullanarak dış (public) IP adresinin nasıl öğrenileceğini detaylı bir şekilde ele alacağız. Sadece basit bir kod örneği vermekle kalmayacak, aynı zamanda bu işlemin arka planını, farklı yöntemleri, avantaj ve dezavantajları, güvenlik boyutunu ve ileri seviye kullanım senaryolarını da inceleyeceğiz.
IP Adresi Nedir?
IP adresi (Internet Protocol Address), internete bağlı cihazların birbirini tanımlaması için kullanılan benzersiz bir numaradır. İki ana türü vardır:
- Yerel (Private) IP: Aynı ağ içindeki cihazları tanımlar (örneğin: 192.168.1.1)
- Genel (Public) IP: İnternet üzerinde görünen adresinizdir
Bu yazının ana konusu public IP adresidir.
Public IP Neden Önemlidir?
Public IP adresi, internet üzerindeki kimliğinizdir. Örneğin:
- Web siteleri sizi bu IP üzerinden tanır
- Coğrafi konum tahmini yapılır
- Güvenlik sistemleri IP bazlı filtreleme yapar
- Sunucu yönetiminde erişim kontrolü sağlanır
Python ile Public IP Öğrenme Mantığı
Python doğrudan sizin dış IP adresinizi bilemez. Çünkü:
- Bilgisayarınız genellikle bir router arkasındadır (NAT)
- Dış IP adresiniz ISP (internet sağlayıcınız) tarafından atanır
Bu yüzden çözüm şudur:
👉 Bir web servisine istek gönderilir
👉 Servis sizin IP’nizi tespit eder
👉 Size geri döndürür
Yöntem 1: requests Kütüphanesi ile
En popüler ve en kolay yöntem budur.
Kod:
import requests
ip = requests.get("https://api.ipify.org").text
print("Dış IP Adresin:", ip)
Nasıl Çalışır?
requests.get()ile bir HTTP isteği gönderilir- Sunucu, isteğin geldiği IP adresini belirler
- Bu IP adresini düz metin olarak döndürür
requests Kurulumu
Eğer sisteminizde yüklü değilse:
pip install requests
Yöntem 2: urllib (Built-in)
Harici kütüphane kullanmak istemiyorsanız:
import urllib.request
ip = urllib.request.urlopen("https://api.ipify.org").read().decode('utf-8')
print("Dış IP Adresin:", ip)
Avantajları:
- Ekstra kurulum gerekmez
- Python ile birlikte gelir
Dezavantajları:
- Daha karmaşık
- requests kadar kullanıcı dostu değil
Alternatif IP Servisleri
Sadece tek bir API’ye bağlı kalmak riskli olabilir. İşte alternatifler:
1. ifconfig.me
requests.get("https://ifconfig.me").text
2. ipinfo.io
requests.get("https://ipinfo.io/ip").text
3. ident.me
requests.get("https://ident.me").text
JSON Formatında Detaylı Bilgi Alma
IP adresinden daha fazlasını öğrenmek isterseniz:
import requests
data = requests.get("https://ipinfo.io/json").json()
print(data)
Örnek çıktı:
- IP adresi
- Şehir
- Ülke
- ISP
- Lokasyon (lat/lon)
IP Değişimini Takip Etme
IP adresiniz zamanla değişebilir. Bunu takip etmek için:
import time
import requests
while True:
ip = requests.get("https://api.ipify.org").text
print("IP:", ip)
time.sleep(10)
Bu script her 10 saniyede bir IP adresinizi kontrol eder.
Gelişmiş Senaryo: IP Değiştiğinde Bildirim
import requests
import time
last_ip = None
while True:
current_ip = requests.get("https://api.ipify.org").text
if current_ip != last_ip:
print("IP değişti:", current_ip)
last_ip = current_ip
time.sleep(5)
Proxy ve VPN Tespiti
Bazı servisler IP’nin proxy veya VPN olup olmadığını söyler:
data = requests.get("https://ipapi.co/json/").json()
print(data)
Hata Yönetimi (Error Handling)
Gerçek projelerde hata kontrolü şarttır:
import requests
try:
ip = requests.get("https://api.ipify.org", timeout=5).text
print(ip)
except requests.exceptions.RequestException:
print("Bağlantı hatası!")
Performans ve Güvenlik
Dikkat edilmesi gerekenler:
- Çok sık istek atmak API limitine takılabilir
- HTTPS kullanmaya dikkat edin
- Güvenilmeyen API’lerden kaçının
Kullanım Alanları
Python ile IP öğrenme şu alanlarda kullanılır:
- Sistem izleme araçları
- Otomasyon scriptleri
- Sunucu yönetimi
- Siber güvenlik analizleri
- Bot geliştirme
Gerçek Hayat Senaryosu
Örneğin:
- Evde bir sunucu kurdunuz
- IP’niz dinamik (sürekli değişiyor)
- Python scripti ile IP’yi takip ediyorsunuz
- Değişince size e-posta atıyor
Bu, basit ama güçlü bir otomasyondur.
Sonuç
Python ile dış IP adresini öğrenmek oldukça basit bir işlemdir, ancak arkasındaki mantık ve kullanım alanları oldukça geniştir.
Özetle:
- Public IP doğrudan öğrenilemez → web servisi gerekir
requestsen kolay yöntemdirurllibalternatif olarak kullanılabilir- JSON API’ler ile detaylı bilgi alınabilir
- Scriptler ile otomasyon yapılabilir
Kapanış
Artık Python kullanarak dış IP adresini öğrenmeyi sadece basit bir kod olarak değil, tüm yönleriyle biliyorsun. Bu bilgi, küçük bir araçtan büyük bir sistemin parçasına kadar birçok projede kullanılabilir.