Si en vuestra aplicación Firefox OS queréis obtener la dirección saliente del dispositivo y país de origen.
como que en javascript de momento no hay manera de obtener la dirección saliente del dispositivo Firefox OS debemos recurrir a una petición servidor, mediante una api JSON
debemos tener un servidor web que execute PHP
crear un archivo getip.php con el siguiente código php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
header('Content-type: text/json');
header('Content-type: application/json');
function getIPInfo() {
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
$result = "Unknown";
$output = array();
$output['Proxy'] = false;
if(filter_var($client, FILTER_VALIDATE_IP)) {
$ip = $client;
} elseif(filter_var($forward, FILTER_VALIDATE_IP)) {
$ip = $forward;
//proxy detect
$output['Proxy'] = true;
} else {
$ip = $remote;
}
$output['Ip'] = $ip;
$output['Host'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$ip_data = json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null) {
$output['Location'] = $ip_data->geoplugin_city . ' ' .$ip_data->geoplugin_countryName;
}
return $output;
}
$output = json_encode(getIPInfo());
echo $output;
la dirección IP la obtenemos de las variables del servidor
HTTP_CLIENT_IP o HTTP_X_FORWARDED_FOR y REMOTE_ADDRPara obtener el nombre de host usamos
gethostbyaddr($_SERVER['REMOTE_ADDR']);y para obtener el identificador del país de la IP, el código llama una API de geoplugin.net
$ip_data = json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
Si probamos nuestroservidor/getip.php nos debe devolver en formato JSON{"Proxy":false,"Ip":"999.999.999.999","Host":"nombre host o bien la misma ip","Location":"ciudad pais"}
proxy: dependiendo si se sale por un proxy o noIp: Número IP
Host: Nombre del HOST, si no se puede resolver devuelve la IP
Location: ciudad y pais separado por un espacio



0 comentarios:
Publicar un comentario