Mostrando las entradas con la etiqueta obtener. Mostrar todas las entradas
Mostrando las entradas con la etiqueta obtener. Mostrar todas las entradas

viernes, 11 de enero de 2019

API para obtener sistema operativo, navegador y versión del usuario en PHP


Request:
https://uploadbeta.com/api/parse-user-agent/?s=nUser-Agent:[USER AGENT]

Response:
{"platform":"Windows","browser":"Chrome","version":"71.0.3578.98"}



Método para retornar valores en array:

function infoUA($ua) {
    $url = 'https://uploadbeta.com/api/parse-user-agent/?s=nUser-Agent:' . urlencode($ua);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    $array = json_decode($response, 1);
    return array($array['platform'], $array['browser'], $array['version']);
}

API para obtener datos sobre el país según la IP en PHP


Request para recibir response en JSON:
http://api.ipaddress.com/iptocountry?format=json

Response:
{"ipaddress":"100.110.160.99","continent_code":"SA","continent_name":"South America","country_code":"AR","country_name":"Argentina"}


Request para recibir response en XML:
http://api.ipaddress.com/iptocountry?format=xml

Response
<?xml version="1.0"?><location><ipaddress>100.110.160.99</ipaddress><continent_code>SA</continent_code><continent_name>South America</continent_name><country_code>AR</country_code><country_name>Argentina</country_name></location>



Método PHP para obtener código del país y nombre del país:

function infoIP($ip) {
    $url = 'http://api.ipaddress.com/iptocountry?format=json&ip=' . $ip;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    $array = json_decode($response, 1);
    return array(strtolower($array['country_code']), $array['country_name']);
}

Obtener IP real de un usuario aunque este en un Proxy con PHP


Para obtener la IP real se utiliza:

$ip = filter_input(INPUT_SERVER, 'HTTP_X_FORWARDED_FOR') ?? filter_input(INPUT_SERVER, 'REMOTE_ADDR');