PHP 500 TL ödül
6
●480
- Kabul Edilen Cevap
- 0 Beğeni
-
- 11-11-2023, 00:24:00İlk olarak, kullanıcıların IP adresi ve yasaklı ülkelerin bilgilerini içeren bir tablo oluşturmanız gerekecek. Aşağıda bir örnek şema ve MariaDB (MySQL) sorguları bulunmaktadır:
CREATE TABLE banned_countries ( id INT PRIMARY KEY AUTO_INCREMENT, country_code CHAR(2) NOT NULL ); INSERT INTO banned_countries (country_code) VALUES ('RU'), ('FR'), ('CN'), ('CO');Bu tablo, yasaklı ülkelerin ISO ülke kodlarını içerir. Şimdi, bu tabloyu kullanarak PHP kodunu MariaDB ile uyumlu hale getirelim:
<?php function isCountryBanned($countryCode) { $db_host = 'your_database_host'; $db_user = 'your_database_user'; $db_pass = 'your_database_password'; $db_name = 'your_database_name'; $conn = new mysqli($db_host, $db_user, $db_pass, $db_name); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $countryCode = $conn->real_escape_string($countryCode); $query = "SELECT COUNT(*) as count FROM banned_countries WHERE country_code = '$countryCode'"; $result = $conn->query($query); if ($result && $result->num_rows > 0) { $row = $result->fetch_assoc(); $count = $row['count']; return $count > 0; } return false; } $ziyaretci_ulke_kodu = ip_info("Visitor", "Countrycode"); if (isCountryBanned($ziyaretci_ulke_kodu)) { header('HTTP/1.1 403 Forbidden'); echo "Forbidden Country IP! / Yasaklı Ülke IP'si"; die(); } ?>Bu örnekte, banned_countries tablosundan yasaklı ülkeleri kontrol etmek için isCountryBanned adlı bir fonksiyon ekledik. Bu fonksiyon, veritabanına bağlanır ve belirli bir ülkenin yasaklı olup olmadığını kontrol eder.
Lütfen veritabanı bağlantı bilgilerinizi, tablo adlarını ve diğer ayrıntıları gerçek değerlerle değiştirdiğinizden emin olun.
Ya da cloudflare ile ülkeleri doğrudan yasaklayabilirsiniz hocam - 11-11-2023, 00:32:16Geçmişte bende buna benzer bir yöntem kullanıyordum, data çektiğim site ratelimit uygulayınca anladım ki dışarıdan çekmektense kütüphane kullanmak daha iyi. geoip2'i composer ile kullanabilirsiniz. ChatGPT yardımcı olacaktır, basit bir işlem.ok35 adlı üyeden alıntı: mesajı görüntüle
- 11-11-2023, 07:28:06Selam hocam, aşağıdaki projemde kullandığım curl işine yarayacaktır.
<?php
$ip = htmlspecialchars($_GET['ip']);
$url = "https://ipapi.co/$ip/json/";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array("X-Custom-Header: value","Content-Type: application/json","User-Agent: Mozilla/5.0 (Linux; Android 11; SM-M307FN Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.87 Mobile Safari/537.36 Instagram 218.0.0.19.108 Android (30/11; 420dpi; 1080x2218; samsung; SM-M307FN; m30s; exynos9611; tr_TR; 345526713)",);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
$sonuc = json_decode($resp);
$region = $sonuc->region;
$country_name = $sonuc->country_name;
$postal = $sonuc->postal;
$country_calling_code = $sonuc->country_calling_code;
$currency = $sonuc->currency;
$asn = $sonuc->asn;
$org = $sonuc->org;
?>
https://github.com/ozgurege0/iptoinfo
Bir sorun varsa bana buradan yada profilimdeki whatsapp'tan ulaşabilirsin. - 11-11-2023, 22:25:15Anladığım kadarıyla ilk başta ziyaretçi ip'sini alıyorsun, ve bir api yardımıyla bu api'ye ziyaretçi ip'sini göndererek kullanıcı hakkında ilgili bilgilere ulaşıyor ve bu bilgilerle bir yönlendirme yapıyorsun. Verdiğim kod tam olarak aradaki bu api'yi sağlıyor. Whatsapp'tan ulaşıp detay verirsen komple kodu yazabilirim.ok35 adlı üyeden alıntı: mesajı görüntüle