php获取用户ip和地区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php获取用户ip和地区相关的知识,希望对你有一定的参考价值。

php获取用户ip和地区
要求上传到虚拟主机后,能够正确的获取到用户ip和地区

function getIp()  
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); 
    else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); 
    else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); 
    else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; 
    else $ip = "unknown"; 
   return $ip; 

使用这个可以获取id,至于要把ip转换从真实地址可以使用新浪有道提供的api或者用本地的QQWry.Dat文件这个文件自己去下载,不过要经常更新

追问

用网上所谓的方法,我试了。api不行。php上传到空间之后,网页上获取不到。你何良策?

追答

你获取到ip了么

参考技术A 可以获取到ip ,使用$_SERVER['REMOTE_ADDR' ]获取ip,要想获取地区的话,得找到相关的(IP地址库)资料,就可以获取到地区了。

地理 IP 和国家/地区/城市数据库

【中文标题】地理 IP 和国家/地区/城市数据库【英文标题】:Geo IP and country/region/city DB 【发布时间】:2014-02-27 17:39:03 【问题描述】:

祝你有美好的一天!

您能否告诉我免费准确的多语言数据库(经常更新):

通过IP(来自PHP)定位国家+地区+城市(可能是+时区); 现场建立国家/地区/城市下拉列表(即例如获取 来自 PHP 地区(按国家/地区)和城市(按地区/国家/地区)。的名字 国家/地区/城市必须使用不同的语言。

谢谢!

【问题讨论】:

【参考方案1】:

MaxMind 的GeoIP2 and GeoLite2 databases 支持多种语言。它们目前包括德语、英语、西班牙语、法语、日语、葡萄牙语、俄语和简体中文。您还可以使用包含的geoname_id 查找位置,使用GeoNames 以获取其他语言的位置名称。

格式还有一个PHP API。

【讨论】:

谢谢,我测试过了。如何“按国家/地区从 PHP 地区和城市按地区/国家/地区获取”?需要“现场建立国家/地区/城市下拉列表”。 对于国家/地区/城市下拉列表,我会向您推荐地理数据源。 (geodatasource.com/software/…) 下拉列表的免费替代数据源是GeoNames。它应该与 MaxMind 数据库很好地集成,因为 MaxMind 将其用作数据源。

以上是关于php获取用户ip和地区的主要内容,如果未能解决你的问题,请参考以下文章

php根据ip地址查地区

PHP 根据IP获取地区查询数据库内容

php获取客户端IP,国家,省份,地区,ISP等信息

php获取客户端IP,国家,省份,地区,ISP等信息

利用PHP获取访客IP地区位置浏览器及来源页面等信息

如何在 PHP 中获取客户端 IP 地址