Python ile Dış (Public) IP Adresi Öğrenme

Kutay Utku
5 dk okuma

İ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
  • requests en kolay yöntemdir
  • urllib alternatif 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.

💬 Yorum Bırak