php获取ip不准确怎么办

藏色散人
Freigeben: 2023-03-08 08:56:02
Original
2892 Leute haben es durchsucht

php获取ip不准确可能是用户使用了代理,因此“$_SERVER[‘REMOTE_ADDR’]”并不能感知用户真实IP,其解决办法就是通过定义一个“X-Forwarded-For”的实体头来获取真实ip。

php获取ip不准确怎么办

本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。

php 获取的ip不真实?

各位,突然想到一个东西,我们这边不是一般$_SERVER[‘REMOTE_ADDR’];获取服务器内网IP(很可能就是服务器的代理IP)。那个代码是没有问题,然后我们使用了反向代理(nginx等),用户也可能使用代理,因此单纯的$_SERVER[‘REMOTE_ADDR’]并不能感知用户真实IP。

但是有个参数能透过代理IP取到真实用户的地址。对HTTp协议进行扩展。定义了一个叫做X-Forwarded-For的实体头。

因为我们考虑这个,主要是做广告的星友们,毕竟别人可以代理,刷量呢。

【推荐:PHP视频教程

代码如下:

//获取用户IP地址 public function getIp() { if(!empty($_SERVER["HTTP_CLIENT_IP"])) { $cip = $_SERVER["HTTP_CLIENT_IP"]; } else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if(!empty($_SERVER["REMOTE_ADDR"])) { $cip = $_SERVER["REMOTE_ADDR"]; } else { $cip = ''; } preg_match("/[\d\.]{7,15}/", $cip, $cips); $cip = isset($cips[0]) ? $cips[0] : 'unknown'; unset($cips); return $cip; }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonphp获取ip不准确怎么办. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!