• 15-09-2022, 00:36:56
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    admin panelime girmeye çalışan kişilerin iplerini php ile ips.txt şeklinde kaydetiyorum buraya kadar sorun yok ama bu ipleri tamamen siteden engellemek istiyorum nasıl yapabilirim?

    kısaca xxxx.txt dosyasında bulunan ipleri leri engellemek istiyorum .

    şimdiden teşekkürler.
  • 15-09-2022, 00:48:03
    #2
    htaccesi ile

    Order Deny, Allow
    Deny from 127.0.0.1
  • 15-09-2022, 04:25:57
    #3
    Dosya da ki ip adreslerini array a alıp, in_array() ile kontrolünü sağlayıp, 500 v.s. header ile die() olabilirsiniz.
  • 15-09-2022, 09:33:48
    #4
    betabil adlı üyeden alıntı: mesajı görüntüle
    Dosya da ki ip adreslerini array a alıp, in_array() ile kontrolünü sağlayıp, 500 v.s. header ile die() olabilirsiniz.
    //------------------------------ ip engel
    
    function GetIP(){
    if(getenv("HTTP_CLIENT_IP")) {
    $ip = getenv("HTTP_CLIENT_IP");
    } elseif(getenv("HTTP_X_FORWARDED_FOR")) {
    $ip = getenv("HTTP_X_FORWARDED_FOR");
    if (strstr($ip, ',')) {
    $tmp = explode (',', $ip);
    $ip = trim($tmp[0]);
    }
    } else {
    $ip = getenv("REMOTE_ADDR");
    }
    return $ip;
    }
    
    $ipcik = GetIP();
    
    $dosya = fopen ("iplog.txt" , 'r');
    $dosyaOku = fRead ($dosya , fileSize ("iplog.txt"));
    
    $engellenmisIP = array("$dosyaOku");
    
    if (in_array($ipcik, $engellenmisIP)) {
    
      # Burada engelenen IP adresi ile ilgili farklı işlemler yapılabilir.
      echo "Engellenmiş IP";
    
    } else {
    
      # Burada da diğer işlemler yapılabilir.
      echo $ipcik;
    
    }
    fclose ($dosya);
    Hocam bu şekilde yaptım ama iplog.txt dosyasında tek ip olunca çalışıyor, alt alta ipler olunca okuyamıyor
  • 15-09-2022, 10:28:20
    #5
    function GetIP(){
        if(getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif(getenv("HTTP_X_FORWARDED_FOR")) {
        $ip = getenv("HTTP_X_FORWARDED_FOR");
            if (strstr($ip, ',')) {
                $tmp = explode (',', $ip);
                $ip = trim($tmp[0]);
            }
        } else {
            $ip = getenv("REMOTE_ADDR");
        }
        return $ip;
    }
         
    $ipcik = GetIP();
    $engellenmisIP = file("iplog.txt", FILE_IGNORE_NEW_LINES);
    if (in_array($ipcik, $engellenmisIP)) {
    # Burada engelenen IP adresi ile ilgili farklı işlemler yapılabilir.
    echo "Engellenmiş IP";
    } else {
    # Burada da diğer işlemler yapılabilir.
    echo $ipcik;
    }
    şöyle denersin.
  • 08-12-2022, 16:35:23
    #6
    tekli gerekirse aşağıdaki gibi kullanabilirsiniz

    $mevcutip = $_SERVER["REMOTE_ADDR"];
    $yasakip = "IP ADRESİ";
    if($mevcutip==$yasakip){ header("Location: https://domain.com/404.php"); } else { }
  • 08-12-2022, 17:20:25
    #7
    warlex adlı üyeden alıntı: mesajı görüntüle
    //------------------------------ ip engel
    
    function GetIP(){
    if(getenv("HTTP_CLIENT_IP")) {
    $ip = getenv("HTTP_CLIENT_IP");
    } elseif(getenv("HTTP_X_FORWARDED_FOR")) {
    $ip = getenv("HTTP_X_FORWARDED_FOR");
    if (strstr($ip, ',')) {
    $tmp = explode (',', $ip);
    $ip = trim($tmp[0]);
    }
    } else {
    $ip = getenv("REMOTE_ADDR");
    }
    return $ip;
    }
    
    $ipcik = GetIP();
    
    $dosya = fopen ("iplog.txt" , 'r');
    $dosyaOku = fRead ($dosya , fileSize ("iplog.txt"));
    
    $engellenmisIP = array("$dosyaOku");
    
    if (in_array($ipcik, $engellenmisIP)) {
    
      # Burada engelenen IP adresi ile ilgili farklı işlemler yapılabilir.
      echo "Engellenmiş IP";
    
    } else {
    
      # Burada da diğer işlemler yapılabilir.
      echo $ipcik;
    
    }
    fclose ($dosya);
    Hocam bu şekilde yaptım ama iplog.txt dosyasında tek ip olunca çalışıyor, alt alta ipler olunca okuyamıyor
    okuyamaz .
    Bu satırı
    if (in_array($ipcik, $engellenmisIP)) {

    şöyle yaparsan okuyacaktır.
    if (in_array("$ipcik\n", $engellenmisIP)) {
  • 08-12-2022, 17:32:28
    #8
    Protex adlı üyeden alıntı: mesajı görüntüle
    okuyamaz .
    Bu satırı
    if (in_array($ipcik, $engellenmisIP)) {

    şöyle yaparsan okuyacaktır.
    if (in_array("$ipcikn", $engellenmisIP)) {
    nereden buldun acana "n" i ?
    var_dump(GetIP());
    sorgusunda sonuç
    string(14) "159.146.49.147"
    çıkıyor.
  • 08-12-2022, 17:41:49
    #9
    betabil adlı üyeden alıntı: mesajı görüntüle
    nereden buldun acana "n" i ?
    var_dump(GetIP());
    sorgusunda sonuç
    string(14) "159.146.49.147"
    çıkıyor.
    metin belgesinde ipleri enterla alt alta inmiş sıralamış. orda satır sonu \n var.