如何在php中将ip地址转换为国家/地区

时间:2012-06-06 06:00:12

标签: php mysql

  

可能重复:
  Get Country of IP Address with PHP

我想基于IP地址的国家/地区名称或位置。我只能显示IP地址。我很努力,但我不能。所以,请帮我解决这个问题。

<?php

  if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
      $ip=$_SERVER['HTTP_CLIENT_IP'];}
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];}
  else {
      $ip=$_SERVER['REMOTE_ADDR'];
  }

 ?>

2 个答案:

答案 0 :(得分:1)

您无法通过简单检查确定IP地址的国家/地区或位置。您可以通过将其发送到http://whatismyipaddress.com/ip/127.0.0.1之类的服务(其中有问题的IP地址替换127.0.0.1)来查找有关它的一些信息。该服务使用各种数据库得出结论。这不是绝对正确的,但往往更正确。

答案 1 :(得分:0)

如果您需要此功能用于商业用途,解决方案是CountryHawk

http://www.cyscape.com/products/chawk/

如果您能够从PHP运行服务器端ActiveX或JavaBean组件,则可以将CountryHawk与PHP一起使用。如果您在PHP中有ActiveX支持,请使用CountryHawk的ActiveX / .NET版本。否则我们是JavaBean版本(CountryHawk4J)。

以下是一段代码,演示了如何在PHP中使用带有ActiveX支持的CountryHawk:

$countryObj = new COM("cyScape.CountryObj");
$countryObj->initialize(@$_SERVER["REMOTE_ADDR"]);
$userCountryCode = $countryObj->CountryCode;