luis Asked: 2020-12-05 15:11:00 +0800 CST 2020-12-05 15:11:00 +0800 CST 2020-12-05 15:11:00 +0800 CST 如何检测您所在的国家/地区? 772 我见过很多表格,其中国家字段,顺便说一句,无非是一个下拉列表,我有问他们的想法: 怎么做到不用选择你所在的国家,因为已经自动选择了?它是用什么做的?如何? php 3 Answers Voted Best Answer user22539 2020-12-05T15:26:30+08:002020-12-05T15:26:30+08:00 使用以下代码可以做到这一点,在这篇文章中它告诉我们: 一个相当简单的方法来检测进入我们网站的用户的国家(不需要使用 php 来找出他们的 IP)是通过 jQuery 使用 wipmania API。查询方法返回几个参数,如:纬度、经度、缩放、地址、城市、国家、国家代码、地区。 $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { document.getElementById("pais").value = data.address.country; }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title of the document</title> </head> <body> <form action=""> Tu pais: <input type="text" id="pais" name=""> <input type="submit"> </form> </body> </html> Diablo 2020-12-05T15:51:51+08:002020-12-05T15:51:51+08:00 要获取用户所在的城市,您可以下载: http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz 下载文件后,您将能够看到一些示例examples/city.php。 您还需要下载此文件: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 并将其放在与您的 php 文件相同的目录中。 一个简单的例子是: <?php include("geoipcity.inc"); function ipAddress(){ if (!empty($_SERVER['HTTP_CLIENT_IP'])){ //Comprobar ip desde Internet compartido. $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ // proxy pass ip $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } $gi = geoip_open("GeoIPCity.dat",GEOIP_STANDARD); $record = geoip_record_by_addr($gi,ipAddress()); print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n"; geoip_close($gi); ?> 源代码: https ://stackoverflow.com/questions/16702162/php-geo-ip-loc-does-not-work josego 2020-12-05T17:13:26+08:002020-12-05T17:13:26+08:00 您可以使用 HTML5 Geolocation 和一些 JavaScript。我确实放了本地化,我添加了地图,但这取决于您的品味和需求。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <div> <p> Latitud: <span id="latitud"></span><br/> Longitud: <span id="longitud"></span> </p> </div> <script> window.onload = function() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { document.getElementById("latitud").innerHTML = position.coords.latitude; document.getElementById("longitud").innerHTML = position.coords.longitude; }, function(error) { alert("Código de error: " + error.code); // error.code can be: // 0: unknown error // 1: permission denied // 2: position unavailable (error response from locaton provider) // 3: timed out }); } }; </script> </body> </html>
使用以下代码可以做到这一点,在这篇文章中它告诉我们:
要获取用户所在的城市,您可以下载:
http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz
下载文件后,您将能够看到一些示例
examples/city.php
。您还需要下载此文件:
并将其放在与您的 php 文件相同的目录中。
源代码: https ://stackoverflow.com/questions/16702162/php-geo-ip-loc-does-not-work
您可以使用 HTML5 Geolocation 和一些 JavaScript。我确实放了本地化,我添加了地图,但这取决于您的品味和需求。