【问题标题】:How to convert ip_address to country in php [duplicate]如何在php中将ip_address转换为国家[重复]
【发布时间】:2012-06-10 03:42:27
【问题描述】:

可能重复:
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'];
  }

 ?>

【问题讨论】:

  • 关键字:“IP 地理位置”(先尝试一些网络搜索。)
  • 您到底想做什么从 IP 地址获取国家名称并存储在数据库中或显示给您的用户
  • $country_code = trim(file_get_contents("http://ipinfo.io/{$ip}/country")) 将为您提供国家代码。

标签: php mysql


【解决方案1】:

如果您需要此功能用于商业用途,解决方案是 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;

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 2013-01-03
      • 2020-03-10
      • 1970-01-01
      相关资源
      最近更新 更多