牛骨文教育服务平台(让学习变的简单)

$ip

客户端的 IP 地址,格式为:202.106.0.20 。
在开启 CDN 后,它会获取 CDN 转发过来的 IP 。

【定义】 文件:xiunophp/misc.func.php:


$ip = ip();

【用例】


<?php

include "./xiunophp/xiunophp.php";
echo $ip; // 127.0.0.1

?>

【ip()】


// 不安全的获取 IP 方式,在开启 CDN 的时候,如果被人猜到真实 IP,则可以伪造。
function ip() {
	global $conf;
	$ip = "127.0.0.1";
	if(empty($conf["cdn_on"])) {
		$ip = $_SERVER["REMOTE_ADDR"];
	} else {
		if(isset($_SERVER["HTTP_CDN_SRC_IP"])) {
			$ip = $_SERVER["HTTP_CDN_SRC_IP"];
		} elseif(isset($_SERVER["HTTP_CLIENT_IP"])) {
			$ip = $_SERVER["HTTP_CLIENT_IP"];
		} elseif(isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
			$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
			$arr = array_filter(explode(",", $ip));
			$ip = end($arr);
		} else {
			$ip = $_SERVER["REMOTE_ADDR"];
		}
	}
	return long2ip(ip2long($ip));
}