我正在开发一个iOS应用程序,我想知道我的实际国家(例如:us-es-es-en-etc(或在我的应用程序中(不使用位置(或网络上侧面(php(通过http请求。
可能?
是的,我们将使用IP地理位置API:
<?php
$ip = "8.8.8.8";
$curl = curl_init("http://ip-api.com/json/$ip");
curl_setopt_array($curl, [CURLOPT_RETURNTRANSFER => TRUE]);
$response = json_decode(curl_exec($curl));
echo $response->country;
但是,如果您的访问者使用一个非类型代理,那么它不是准确的...这个:
<?php
if( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif( array_key_exists( 'REMOTE_ADDR', $_SERVER ) $ip = $_SERVER['REMOTE_ADDR'];
elseif( array_key_exists( 'HTTP_CLIENT_IP', $_SERVER ) $ip = $_SERVER['HTTP_CLIENT_IP'];
else die( "can't guess ip" );
?>
然后,您可以使用第三方服务获取国家代码:
http://api.hostip.info/country.php?ip=83.24.10.141
http://ip-api.com/json/83.24.10.141
等。