-4

可能重复:
使用 PHP 获取 IP 地址所在的国家/地区

我想基于 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'];
  }

 ?>
4

2 回答 2

1

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

于 2012-06-06T06:03:45.827 回答
0

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

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

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

下面是一段代码,它演示了如何使用 PHP 中的 CountryHawk 并支持 ActiveX:

$countryObj = new COM("cyScape.CountryObj");
$countryObj->initialize(@$_SERVER["REMOTE_ADDR"]);
$userCountryCode = $countryObj->CountryCode;
于 2012-06-06T06:20:39.890 回答