首页 > 编程语言 >PHP获取IP的多种方式解析

PHP获取IP的多种方式解析

时间:2023-02-07 12:33:00浏览次数:57  
标签:echo 解析 HTTP ip SERVER IP REMOTE PHP

PHP获取IP的方法有许多种,我们今天向大家总结了六种方法,希望通过对这六种方法的学习,能够加深我们对PHP语言的进一步了解,巩固我们所掌握的知识。


PHP获取IP方法一:


<?php 
echo "<br>";
?>

<?php

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 = "无法获取!";
return $cip;
}
echo "<br>";
?>



PHP获取IP方法二:


<?php 
echo "<br>";
?>

<?
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地址是:".$ip."<br>";
?>

PHP获取IP方法三:

复制

<?php 
echo "<br>";
?>

<?
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp;
echo "<br>";
?>

PHP获取IP方法四:

复制

<?php 
echo "<br>";
?>

<?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."<br>";
?>

PHP获取IP方法五:

复制

<?php 
echo "<br>";
?>

<?
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_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();
echo "<br>";
?>

PHP获取IP方法六:

复制

<?php 
echo "<br>";
?>

<?
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;
echo "<br>";
?>

标签:echo,解析,HTTP,ip,SERVER,IP,REMOTE,PHP
From: https://blog.51cto.com/peishuai/6041981

相关文章

  • xilinx zcu106 四摄像头接mipi案例解析
    官方案例地址:https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1010303572/Zynq+UltraScale+MPSoC+VCU+TRD+2020.2+-+Quad+Sensor+MIPI+CSI+Video+Capture+and+HDMI......
  • 将本地Excel文件压缩为zip返回下载(解决压缩文件名乱码)
    StringzipPath=basePath+File.separator+"ZIP"+File.separator;Filezip=newFile(basePath+File.separator+"ZIP"+File.separator+fileName+Time+".zip");......
  • JavaScript 使用 !! 运算符的利弊
    !!运算符是在JavaScript中将一个值转换为布尔值的常用方法。使用这个运算符的优点是:简单易用:它只需要一行代码就可以完成转换,而不需要使用其他的方法。可读性:它很......
  • javaScript - String对象的创建,全部属性,常用方法,全部方法
    1.String对象的创建//方式1字面量方式varstr="levi";//方式2创建对象方式varstr=newString("levi"); 2.String对象的属性:属性描述constructor对创建......
  • IP SLA
    我们再配置IPSLA的时候,有些参数可能会有所混淆。思科默认的这些参数值如下:frequencyFrequencyofanoperation(60s)timeoutTimeoutofanoperation(5000......
  • ECMAScript 是什么?
    ECMAScript是什么简介Ecma标准定义了ECMAScript语言ECMAScript基于多种原始技术,最著名的是JavaScript(Netscape)和JScript(Microsoft)ECMAScript以嵌入We......
  • 使用 pycharm pip install 问题
    1. 出现trusted_host问题,说明没有配置信任证书,需要在pip.ini里面配置trusted_host;2.设置代理:settings>HTTPProxy>ManualSet127.0.0.1>ConnectionTest......
  • QML教程(七) JavaScript
    目录一、对属性值使用JavaScript表达式二、在QML中添加JavaScript函数三、使用JavaScript文件四、属性绑定中的JavaScript五、信号处理程序中的JavaScript......
  • QML概念及框架--继承JavaScript
    QML推荐使用属性绑定和现有的QML元素来创建界面。为了允许执行更高级的行为,QML紧密集成了必要的JavaScript代码。QML中提供的JavaScript环境比在网页浏览器中的更严格。在Q......
  • 产品力狂飙|Coremail荣登第五版《CCSIP2022中国网络安全行业全景册》
    2023年2月1日,FreeBuf咨询正式发布 《CCSIP(ChinaCyberSecurityPanorama)2022中国网络安全行业全景册(第五版)》。第五版全景图仍将以PDR网络安全模型为基础,并参考IPDRR安全......