
IMEI Sorgulayıcı - Program Özellikleri
Ne İşe Yarar:
- USB'ye bağlanan iPhone'un IMEI numarasını otomatik alır
- e-Devlet IMEI sorgulama sayfasını açar ve IMEI'yi otomatik doldurur
- Telefonun kayıtlı/kaçak durumunu kontrol etmenizi sağlar
- ✅ Otomatik IMEI algılama - Telefon takılınca IMEI'yi anında okur
- ✅ Otomatik form doldurma - e-Devlet sayfasına telefonun IMEI'sini yazar
- ✅ Panoya kopyalama - Aynı zamanda en günccel IMEI her zaman Ctrl+V ile yapıştırılmaya hazır
- ✅ Akıllı cihaz takibi - Telefon çıkarılınca tarayıcıyı kapatır
- ✅ Sürekli çalışma - Program açık kaldığı sürece yeni telefonları algılar
- ✅ Çoklu cihaz desteği - Farklı telefonları art arda sorgulayabilir
- Telefon alım-satımı yapanlar için idealdir
- IMEI kontrolü gereken işlemlerde zaman kazandırır
- Manuel IMEI girme zahmetini ortadan kaldırır
Kullanılan kütüphaneler:
selenium
webdriver-manager
pymobiledevice3
pyperclip
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
IMEI Sorgulayıcı v1
Tarih: 14 Kasım 2025
Not: Chrome driver otomatik indirilir, elle kurma gerek yok
"""
import sys
import time
import threading
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# pip install pymobiledevice3 selenium webdriver-manager pyperclip
try:
from pymobiledevice3.usbmux import list_devices
from pymobiledevice3.lockdown import create_using_usbmux
except:
print("pymobiledevice3 kurulu değil! pip install pymobiledevice3")
sys.exit(1)
try:
import pyperclip
PANO_VAR = True
except:
PANO_VAR = False
print("Uyarı: pyperclip yok, pano özelliği çalışmayacak")
from webdriver_manager.chrome import ChromeDriverManager
# Sabitler
EDEVLET_URL = "https://www.turkiye.gov.tr/imei-sorgulama"
SONUC_URL = "https://www.turkiye.gov.tr/imei-sorgulama?asama=1"
BEKLEME_SURESI = 60 # sonuç sayfasında bekle
MAX_CAPTCHA_BEKLE = 300 # 5 dk captcha için bekle
driver = None
son_imei = None
calisiyormu = True
def iphone_baglidmi():
"""iPhone bağlı mı kontrol et"""
try:
cihazlar = list_devices()
return len(cihazlar) > 0
except:
return False
def imei_oku():
"""Bağlı iPhone'dan IMEI al"""
global son_imei
try:
cihazlar = list_devices()
if not cihazlar:
return None
cihaz = cihazlar[0]
lockdown = create_using_usbmux(serial=cihaz.serial)
imei = lockdown.get_value(key='InternationalMobileEquipmentIdentity')
# panoya kopyala
if PANO_VAR and imei and imei != son_imei:
try:
pyperclip.copy(imei)
print(f"[+] IMEI panoya kopyalandı: {imei}")
except:
pass # pano hatası önemli değil
son_imei = imei
return imei
except Exception as e:
# print(f"IMEI okuma hatası: {e}") # debug için aç
return None
def tarayici_ac_ve_sorgula(imei):
"""Chrome aç ve IMEI sorgula"""
global driver
try:
# eski tarayıcı varsa kapat
if driver:
try:
driver.quit()
except:
pass
# Chrome ayarları
opts = webdriver.ChromeOptions()
opts.add_argument('--disable-blink-features=AutomationControlled')
opts.add_experimental_option("excludeSwitches", ["enable-automation"])
opts.add_experimental_option('useAutomationExtension', False)
# opts.add_argument('--headless') # arka planda çalıştırmak için
print("[*] Tarayıcı açılıyor...")
driver = webdriver.Chrome(
service=webdriver.chrome.service.Service(ChromeDriverManager().install()),
options=opts
)
# sayfayı aç
driver.get(EDEVLET_URL)
print("[*] e-Devlet sayfası yüklendi")
# IMEI kutusunu bul ve doldur
wait = WebDriverWait(driver, 10)
imei_input = wait.until(EC.presence_of_element_located((By.ID, "txtImei")))
imei_input.clear() # önce temizle
imei_input.send_keys(imei)
print(f"[*] IMEI girildi: {imei}")
# Captcha var mı kontrol et
try:
driver.find_element(By.CSS_SELECTOR, "label[for='captcha_name']")
print("[!] CAPTCHA VAR - Manuel giriş gerekli!")
print("[!] Güvenlik kodunu gir ve Sorgula'ya bas")
except:
# captcha yok, otomatik sorgula
btn = driver.find_element(By.CLASS_NAME, "submitButton")
btn.click()
print("[*] Sorgula butonuna tıklandı")
# Sonuç bekle
basla = time.time()
while (time.time() - basla) < MAX_CAPTCHA_BEKLE:
if driver.current_url == SONUC_URL:
print("[✓] Sonuç sayfasına geçildi!")
time.sleep(BEKLEME_SURESI) # sonucu göster
break
time.sleep(0.5)
# cihaz çıkarıldı mı kontrol et
if not iphone_baglidmi():
print("[!] Cihaz çıkarıldı, tarayıcı kapatılıyor")
driver.quit()
driver = None
return
except Exception as e:
print(f"[X] Hata: {e}")
if driver:
driver.quit()
driver = None
def ana_dongu():
"""Ana program döngüsü"""
global driver, calisiyormu
print("="*50)
print("IMEI SORGULAYICI - Cihaz bekleniyor...")
print("Çıkmak için Ctrl+C")
print("="*50)
onceki_durum = False
islem_yapildi = {} # hangi cihazlar için işlem yapıldı
while calisiyormu:
try:
simdiki_durum = iphone_baglidmi()
# Cihaz yeni takıldı
if not onceki_durum and simdiki_durum:
print("\n[+] iPhone algılandı!")
imei = imei_oku()
if imei and imei not in islem_yapildi:
print(f"[+] IMEI: {imei}")
tarayici_ac_ve_sorgula(imei)
islem_yapildi[imei] = True
elif not imei:
print("[!] IMEI okunamadı - Telefon kilitli olabilir")
# Cihaz çıkarıldı
elif onceki_durum and not simdiki_durum:
print("\n[-] Cihaz çıkarıldı")
if driver:
driver.quit()
driver = None
onceki_durum = simdiki_durum
time.sleep(0.5)
except KeyboardInterrupt:
print("\n[*] Program kapatılıyor...")
calisiyormu = False
if driver:
driver.quit()
break
except Exception as e:
print(f"[X] Beklenmeyen hata: {e}")
time.sleep(2)
if __name__ == "__main__":
try:
ana_dongu()
except:
if driver:
driver.quit()
sys.exit(0)
