Saber si una IP es Local o Remota

Iniciado por 9ttnix, 15 Mayo 2012, 01:32 AM

0 Miembros y 1 Visitante están viendo este tema.

9ttnix

Hola compañeros

Me gustaria saber como puedo identificar cuando una IP es de la red Local y cuando es de una Red Remota cuando se intenta conectar a traves de sockets usando VB6 y el control Winsock.

Gracias por adelantado
Saludos
The knowledge is power

79137913

HOLA!!!

Int: Winsock1.LocalIP
Ext:(Please set your program's user agent to Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0:
http://automation.whatismyip.com/n09230945.asp
)



GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

rembolso

#2
hay varias formas de saberlo , la mas comun es cuando tu ruter no acepta conexiones o la otra es un rango establecido entre 172.26.0.1 y 192.169.1.1 que serian  la dirección IP local es la que corresponde a la red local de su casa u oficina .  :rolleyes: nota: si es una red muy pero muy grade cabe decir que el rango establecido en esa red es relativo al numero de ordenadores que poseais .

noele1995

Cita de: rembolso en 15 Mayo 2012, 03:48 AM
hay varias formas de saberlo , la mas comun es cuando tu ruter no acepta conexiones o la otra es un rango establecido entre 172.26.0.1 y 192.169.1.1 que serian  la dirección IP local es la que corresponde a la red local de su casa u oficina .  :rolleyes: nota: si es una red muy pero muy grade cabe decir que el rango establecido en esa red es relativo al numero de ordenadores que poseais .

El rango de ip locales suelen ser estos pero no tiene porque, hay muchas redes que tienen cambiados estos rangos o tienen configuradas ips locales estaticas y de esta forma pueden estar fuera del rango y ser locales. Lo de la recepcion de conexiones del router si se podria mirar para hacerlo por ahi.

Salu2, Noele1995

el-brujo

#4
    Clase A: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts).
   Clase B: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts). 16 redes clase B contiguas, uso en universidades y grandes compañías.
   Clase C: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts). 256 redes clase C contiguas, uso de compañías medias y pequeñas además de pequeños proveedores de internet (ISP).



"Private Use" IP addresses:

       10.0.0.0 - 10.255.255.255
       172.16.0.0 - 172.31.255.255
       192.168.0.0 - 192.168.255.255

"Autoconfiguration" IP Addresses:

       169.254.0.0 - 169.254.255.255

"Loopback" IP addresses:

       127.0.0.0 - 127.255.255.255

Multicast IP addresses:

       224.0.0.0 - 239.255.255.255

https://www.iana.org/abuse/answers
http://es.wikipedia.org/wiki/Red_privada


en php:

Código (php) [Seleccionar]

function getRealIP()
{

  if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
  {
     $client_ip =
        ( !empty($_SERVER['REMOTE_ADDR']) ) ?
           $_SERVER['REMOTE_ADDR']
           :
           ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
              $_ENV['REMOTE_ADDR']
              :
              "unknown" );

     // los proxys van añadiendo al final de esta cabecera
     // las direcciones ip que van "ocultando". Para localizar la ip real
     // del usuario se comienza a mirar por el principio hasta encontrar
     // una dirección ip que no sea del rango privado. En caso de no
     // encontrarse ninguna se toma como valor el REMOTE_ADDR

     $entries = preg_split('/[, ]/', $_SERVER['HTTP_X_FORWARDED_FOR']);

     reset($entries);
     while (list(, $entry) = each($entries))
     {
        $entry = trim($entry);
        if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
        {
           // http://www.faqs.org/rfcs/rfc1918.html
           $private_ip = array(
                 '/^0\./',
                 '/^127\.0\.0\.1/',
                 '/^192\.168\..*/',
                 '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                 '/^10\..*/');

           $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

           if ($client_ip != $found_ip)
           {
              $client_ip = $found_ip;
              break;
           }
        }
     }
  }
  else
  {
     $client_ip =
        ( !empty($_SERVER['REMOTE_ADDR']) ) ?
           $_SERVER['REMOTE_ADDR']
           :
           ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
              $_ENV['REMOTE_ADDR']
              :
              "unknown" );
  }

  return $client_ip;

}


$ip = getIp();

echo $ip;


seba123neo

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson