在php中使用ip地址获取当前国家/地区名称

时间:2012-02-17 09:49:53

标签: php zend-framework

我有一个下拉列表,我从数据库中获取国家/地区名称,我想根据下拉框中的IP地址选择当前国家/地区名称

4 个答案:

答案 0 :(得分:2)

使用PHP GeoIP API。注意:您需要先设置Maxmind GeoIP API database才能使用这些功能。

<select name="securityqustion"  class="securityqustion" id="security_qustion">
<?php
  // will resolve 2-character ISO country code
  $request_country = geoip_country_code_by_name($_SERVER['REMOTE_ADDR']);  

  $countries = array("DE" => "Germany", "FR" => "France", ...);  // define list
  foreach ($countries as $country_code => $country_label) {
    if ($request_country == $country_code) 
      $selected = "selected"
    else 
      $selected = "";
    echo "<option value=\"{$country_code}\" {$selected}>{$country_label}</option>\n";
  }
?>
</select>

答案 1 :(得分:0)

MaxMind GeoIP有一个免费的PHP API,用于根据他们的IP查找某人的国家/地区。

答案 2 :(得分:0)

您必须使用IP地理位置网络服务。他们中的大多数都是有偿的,但他们也提供一些(通常是有限的)免费访问。

我过去成功使用过http://www.maxmind.com/http://ipinfodb.com/,而朋友对http://www.geoplugin.com/

有好话要说

答案 3 :(得分:-2)

system(&#39; traceroute&#39;。$ trace_ip_addr); //跟踪IP地址。