Geliştiricler olarak IP adreslerini log tutarken veya kullanıcı kayıt işlemlerinde kullanırız. Bugün bu yazımızda ziyaretçinin IP bilgilerini otomatik çekmeyi ve GET yöntemi ile küçük bir IP adresi sorgulama uygulaması yapacağız. Ziyarerçi IP adresini direk olarak sorgulayamayız, en sağlıklı yöntem tüm prosüdürleri atlamış kişilerden API ile bilgi almaktır.
apimizi ip-api.com/docs/api:serialized_php adresinden JSON formatında alacağız. Verileri JSON formatında almanızı da tavsiye ederim.
İlk adım olarak sayfamızın en üst kısmına taglarımızı açalım ve formumuzdan gelecek olan IP adres verisini GET ile çekelim.
if (isset($_GET['ipaddress'])) {
$response = file_get_contents('http://ip-api.com/json/'.$_GET['ipaddress']);
$result = json_decode($response);
echo "
Üst kısımda ip-api.com'un bize sunduğu JSON verisini decode yaparak diziye çevirdik ve artık verileri çekmeye hazırız. Kullanıcının IP adresi verisini girebileceği bir form yapalım ve verileri arayüzümze çekelim
<form action="" method="GET">
<input type="text" name="ipaddress" placeholder="IP Adresini Sorgula">
<input type="submit" value="Sorgu">
</form>
<?php if (isset($response)): ?>
<?php if ($result->status == "fail"): ?>
<?php echo "IP Adresinizi Doğru Giriniz" ?>
<?php else: ?>
<ul>
<li><b>IP:</b> <?php echo $result->query; ?></li>
<li><b>Ülke:</b> <?php echo $result->country ." ". $result->countryCode; ?></li>
<li><b>Şehir:</b> <?php echo $result->regionName ." ". $result->region; ?></li>
<li><b>Sağlayıcı:</b> <?php echo $result->org; ?></li>
</ul>
<?php endif; ?>
<?php endif; ?>
İşte bu kadar, arayüzünüze güzel bir tasarım yapıp kullanmaya başlayabilirsiniz.
Az önce manuel olarak IP adresinin bilgilerini çekmeyi öğrendik, şimdi ise log tutma gibi uygulamalarda işe yarayabilecek yöntemi yapalım, web sitemizi ziyaret eden ziyaretçinin IP bilgilerinin detayını çekelim.
Yapacağımız şeyler az önce yaptığımız uygulama ile hemen hemen aynı. İlk adım kullanıcının sadece IP adresini çekmek.
function IpBul()
{
if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
$ipAddres = $_SERVER["HTTP_CLIENT_IP"];
}elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$ipAddres = $_SERVER["HTTP_X_FORWARDED_FOR"];
}else{
$ipAddres = $_SERVER["REMOTE_ADDR"];
}
return $ipAddres;
}
echo $ip = IpBul();
Bu kısımda ziyaretçinin IP adresini çektik. Şimdi ise IP adresnin detaylarını çekelim.
$ip = IpBul();
$response = file_get_contents('http://ip-api.com/json/'.$ip);
$result = json_decode($response);
Bu kısımda ise kullanıcnın IP adresinin detaylarını çektik, function IpBul(){} metodundan gelen IP adresini ip.api.com/json/(Buraya Yönlendirdik). Arayüzümüz de az önceki uygulama ile aynı olacak.
<?php if (isset($response)): ?>
<?php if ($result->status == "fail"): ?>
<?php echo "IP Adresinizi Doğru Giriniz" ?>
<?php else: ?>
<ul>
<li><b>IP:</b> <?php echo $result->query; ?></li>
<li><b>Ülke:</b> <?php echo $result->country ." ". $result->countryCode; ?></li>
<li><b>Şehir:</b> <?php echo $result->regionName ." ". $result->region; ?></li>
<li><b>Sağlayıcı:</b> <?php echo $result->org; ?></li>
</ul>
<?php endif; ?>
<?php endif; ?>
Yazımızı okuduğunuz için çok teşekkür ederiz. Umarım yazım sorunlarınıza çare olmuştur.
Yorumlar (0)