2016-05-26 6 views
0

特定の会社から来た(i.pアドレスを使用している)ユーザを見つけようとしています。ユーザipを検索してipsの範囲に一致するか確認する

私は、ユーザーのIPアドレスを見つけて、それがIPの単一の範囲に登場かどうかを確認したかったが、私は指定されたものに定義された複数のIP範囲とだけ試合がしたいの前に:

-findユーザーのIP -seeそれはIPアドレスの範囲は非常に他のフォームは私が例として働いていた下記のコード持って

何もしない示し-if を設定し、任意の一致した場合:comparis前に機能をip2long

<?php 

$ip = $_SERVER['REMOTE_ADDR']; 

$private_ip_ranges = array(); 

$range = (object) array(); 
$range->name = 'Media'; 
$range->lower = '212.1.0.0'; 
$range->upper = '212.1.255.255'; 
$private_ip_ranges[] = $range 

$range = (object) array(); 
$range->name = 'Media 2'; 
$range->lower = '213.1.0.0'; 
$range->upper = '213.1.255.255'; 
$private_ip_ranges[] = $range 

foreach ($private_ip_ranges as $ip_range) { 
    if (in_ip_range($ip, $range->lower, $range->upper)) { 
     echo "webform"; 
    } 
} 





?> 

答えて

2

使用をon

if (($lngIP=ip2long($ip)) < 0) $lngIP += 4294967296; 

foreach ($private_ip_ranges as $ip_range) { 
    if (($lngLow=ip2long($ip_range->lower)) < 0) $lngLow += 4294967296; 
    if (($lngHigh=ip2long($ip_range->upper)) < 0) $lngHigh += 4294967296; 
    if($lngIP >= $lngLow and $lngIP <= $lngHigh) { 
     echo "webform"; 
    } 
} 
+0

ありがとうございました。これはおすすめです! – Yondaime14

関連する問題