PHP ile IP adresinin bilgilerini çekmek

PHP Trend Makale

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.

IP API JSON ile Verilierli Çekelim

apimizi ip-api.com/docs/api:serialized_php adresinden JSON formatında alacağız. Verileri JSON formatında almanızı da tavsiye ederim.

PHP ile IP Adresi Sorgulama Uyuglaması

İ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.

Ziyaretçi IP adresini otomatik çekmek

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)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!