PHP 获取ip地址代码汇总
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-08 10:50:52 浏览: 评论:0
本文给大家汇总介绍了6种php获取IP的方法,有简单有复杂,大家根据自己的项目需求,自由选择吧。
代码一:
- function getip() {
- static $ip = '';
- $ip = $_SERVER['REMOTE_ADDR'];
- if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
- $ip = $_SERVER['HTTP_CDN_SRC_IP'];
- } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
- $ip = $_SERVER['HTTP_CLIENT_IP'];
- } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
- foreach ($matches[0] AS $xip) {
- if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
- $ip = $xip;
- break;
- }
- }
- }
- return $ip;
- }
代码二:
- <?php
- error_reporting (E_ERROR | E_WARNING | E_PARSE);
- 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;
- ?>
方法三:
- <?php
- $iipp = $_SERVER["REMOTE_ADDR"];
- echo $iipp ;
- ?>
方法四:
- <?php
- $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
- $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
- echo $user_IP
- ?>
方法五:
- <?php
- function get_real_ip()
- {
- $ip=false;
- if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){
- $ip = $_SERVER["HTTP_CLIENT_IP"];
- }
- if (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])){
- $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
- if($ip){
- array_unshift($ips, $ip); $ip = FALSE;
- }
- for($i = 0; $i < count($ips); $i++){
- if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
- $ip = $ips[$i];
- break;
- }
- }
- }
- return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
- }
- echo get_real_ip();
- ?>
方法六:
- <?php
- if(getenv('HTTP_CLIENT_IP')){
- $onlineip = getenv('HTTP_CLIENT_IP');
- }
- elseif(getenv('HTTP_X_FORWARDED_FOR')){
- $onlineip = getenv('HTTP_X_FORWARDED_FOR');
- }
- elseif(getenv('REMOTE_ADDR')){
- $onlineip = getenv('REMOTE_ADDR');
- }
- else{
- $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
- }
- echo $onlineip;
- ?>
Tags: PHP获取ip地址
相关文章
- ·PHP获取IP地址输出为数组程序代码(2014-07-10)
- ·超简单的php获取ip地址信息的接口范例(2016-01-20)
- ·基于PHP实现通过照片获取ip地址(2021-07-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)