Bueno básicamente cree 4 funciones (algunas las consegui en este foro otras en el foro de php org)
<?php
function getIp() //Esta funcion devuelve la ip desde donde te estas conectando
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif (isset($_SERVER['HTTP_VIA'])) {
$ips = $_SERVER['HTTP_VIA'];
}
elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ips = $_SERVER['REMOTE_ADDR'];
}
else {
$ips = "unknown";
}
return $ips;
//echo "Tu IP es: $ips";
}
function validarIP($ipAntena) //Valida que la conexion sea desde una Ip especifica
{
$ipRemota=getIp();
if($ipAntena==$ipRemota)
{
$idInstalacion=$_GET["idInstalacion"];
//echo "Estas en la antena para realizar la conexion<br>";
return true;
}
else
{
echo "<h1>No estas en la antena para realizar la conexion<h1>Estas en la ip".$ipRemota." ipantena: ".$ipAntena."<br>";
return false;
}
}
function in_rango_ip($ip_one, $ip_two=false, $ip_remota)//funcion que recibe 2 ips para un rango y una ip para verificar que este en ese rango
{
if($ip_two===false){
if($ip_one==$ip_remota){
$ip=true;
}else{
$ip=false;
}
}else{
if(ip2long($ip_one)<=ip2long($ip_remota) && ip2long($ip_two)>=ip2long($ip_remota)){
$ip=true;
}else{
$ip=false;
}
}
return $ip;
}
function getMask($mask) //funcion que recibe una mascara y consigue cuantas direcciones hay disponible
{
if($mask=="255.255.255.252")//30
return 4;
else if($mask=="255.255.255.248")//29
return 8;
else if($mask=="255.255.255.240")//28
return 16;
else if($mask=="255.255.255.224")//27
return 32;
else if($mask=="255.255.255.192")//26
return 64;
else if($mask=="255.255.255.128")//25
return 128;
else if($mask=="255.255.255.0")//24
return 256;
else
return -1;
}
function validarIpSegmento($ip_red,$mascara) //Esta recibe una ip y una mascara y automaticamente localiza la ip desde donde se esta conectando
{
$nroMascara=getMask($mascara); // Obtengo los valores de la mascara
$ipFinalSegmento=ip2long($ip_red)+$nroMascara-1; // Le sumo la cantidad de ips de la red que obtuve en la mascara y resto 1
$ip_broadcast=long2ip($ipFinalSegmento); // Consigo la ip de bc en formato xxx.xxx.xxx.xxx
$ipConex=getIp(); // Consigo la ip desde donde estoy navegando
$esta_dentro_rango=in_rango_ip($ip_red, $ip_broadcast, $ipConex);
echo "<br>".$ip_red." ".$ip_broadcast." ".$ipConex."<br>";
return $esta_dentro_rango;
}
function in_rango_ip('192.168.1.0', '192.168.1.255', '192.168.1.19'); //true
function in_rango_ip('192.168.1.0', '192.168.1.255', '192.168.100.1'); //false
//la ip desde donde estoy conectado es 192.168.1.19
function validarIpSegmento('192.168.1.0','255.255.255.224'); //true
function validarIpSegmento('192.168.1.0','255.255.255.248'); //false
?>
Espero que les sirva, me estoy volviendo loco con estas IP's XD pero para que no le pase lo mismo a los demas