php获取ip数据不同 php获取ip并记录

php到底怎么获取IP地址,为什么三种方法获取的IP都不一样?

php获取真实IP地址,参考方法如下:

贵阳网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联建站于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

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); 

}

php获取客户端IP地址的几种方法

//php获取ip的算法

if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) 

$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; 

elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) 

$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; 

}

elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]) 

$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; 

elseif (getenv("HTTP_X_FORWARDED_FOR")) 

$ip = getenv("HTTP_X_FORWARDED_FOR"); 

elseif (getenv("HTTP_CLIENT_IP")) 

$ip = getenv("HTTP_CLIENT_IP"); 

elseif (getenv("REMOTE_ADDR"))

$ip = getenv("REMOTE_ADDR"); 

else 

$ip = "Unknown"; 

echo "你的IP:".$ip ; 

?

php程序 js判断ip地区根据不同ip输出不同内容(商务通代码)

不建议使用js进行这个处理,你这样做的话完整过程为

1. 用户访问php页面

2. 服务端输出html

3. 浏览器运行js检查ip所属区域

4. ajax方式提交区域信息给服务器

5. 服务器返回查询结果

6. js将查询结果显示到当前页面

你想想这要多长时间。因此最好是php端直接判断区域,然后直接查询并输出就行了。

提供一个php写的函数,如果有用望采纳

function getCityByUserIp() {

$ip = false;

if (isset($_SERVER)){

if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {

$ip = $_SERVER["HTTP_CLIENT_IP"];

} else {

$ip = $_SERVER["REMOTE_ADDR"];

}

} else {

if (getenv("HTTP_X_FORWARDED_FOR")){

$ip = getenv("HTTP_X_FORWARDED_FOR");

} else if (getenv("HTTP_CLIENT_IP")) {

$ip = getenv("HTTP_CLIENT_IP");

} else {

$ip = getenv("REMOTE_ADDR");

}

}

if (false === $ip) {

return false;

}

$file = fopen(';ip=' . $ip, 'r');

$content = fread($file, 1024);

fclose($file);

if (! preg_match("/^var remote_ip_info = (\\{[^\\}]+\\});$/", $content, $_match)) {

return false;

}

$ipInfo = json_decode($_match[1]);

return $ipInfo;

}

返回的数组中包括 country, province, city等,如果返回false表示无法获得ip或该ip没有在大陆地区匹配的记录(港澳台似乎有province,但是没有city)。

请问一下php的pdo获取公网ip关掉电脑又开电脑为什么ip又不同了?

你没有告知你的服务器网络状况。

如果是在正规服务商(比如腾讯云,阿里云等)购买的(虚拟)服务器,一般会有绑定的公网IP,关闭服务器后再打开是相同的。

如果你的服务器是在自己家(或者宿舍)的内部网络,那么对应的公网ip就要看提供网络的运营商了,大部分运营商提供的网络每次拨号(或者登录)后获得的公网ip是不同的,甚至有时使用ip网站查询到你电脑的公网ip地址也无法链接到内网你的服务器上。这种情况下具体解决方案你就要研究内网的路由设置了。

php获取IP地址的三个函数区别

以下资料供参考:

1、REMOTE_ADDR 浏览当前页面的用户计算机的ip地址

2、HTTP_X_FORWARDED_FOR 浏览当前页面的用户计算机的网关

3.HTTP_CLIENT_IP 客户端的ip

在PHP 中使用 REMOTE_ADDR 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。

要想透过代理服务器取得客户端的真实 IP 地址,就要使用 HTTP_X_FORWARDED_FOR 来读取。

不过要注意的事,并不是每个代理服务器都能用 HTTP_X_FORWARDED_FOR 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。

还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么HTTP_X_FORWARDED_FOR 取到的值将是空的。

PHP获取ip地址并比较

?php

$ip=$_SERVER["REMOTE_ADDR"];

$q=$mysqli-("select * from account where userip='$ip'");

if($q-rows_num0){echo 'IP已存在';}

else{

$q2=$mysqli-("insert into account (userip) values ('$ip')");

}

?

你看看吧,再有问题请HI我。

你的函数写错了,$ip=$_SERVER["REMOTE_ADDR"];


分享文章:php获取ip数据不同 php获取ip并记录
标题链接:http://bzwzjz.com/article/dooioeo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 响应式网站设计 成都定制网站建设 公司网站建设 重庆网站建设 网站建设 高端网站设计 专业网站设计 定制网站制作 营销型网站建设 响应式网站建设 手机网站建设套餐 成都网站建设 成都网站建设 网站设计 四川成都网站制作 成都网站设计公司 网站建设改版 梓潼网站设计 成都网站建设 成都定制网站建设 外贸营销网站建设 成都网站建设