PHP获取客户端及服务器端IP的封装类

655Z技术栈 PHP编程 2025年06月23日 10

以下是一个封装了获取客户端和服务器端IP的PHP类的示例:

class IPHelper { public static function getClientIP() { $ip = $_SERVER['REMOTE_ADDR']; if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = trim($ips[0]); } return $ip; } public static function getServerIP() { $ip = $_SERVER['SERVER_ADDR']; return $ip; } } // 使用示例 $clientIP = IPHelper::getClientIP(); $serverIP = IPHelper::getServerIP(); echo "客户端IP: " . $clientIP . " "; echo "服务器IP: " . $serverIP;

这个类有两个静态方法,getClientIP()用于获取客户端IP,getServerIP()用于获取服务器端IP。

getClientIP()方法中,首先检查$_SERVER['HTTP_CLIENT_IP']变量是否存在,如果存在则使用它作为客户端IP。如果不存在,检查$_SERVER['HTTP_X_FORWARDED_FOR']变量是否存在,如果存在则使用它作为客户端IP。最后,如果都不存在,则使用$_SERVER['REMOTE_ADDR']作为客户端IP。

getServerIP()方法中,直接返回$_SERVER['SERVER_ADDR']变量作为服务器IP。

你可以根据自己的需求进行修改和扩展这个类。

提供PHP及ThinkPHP框架的定制开发、代码优化,PHP修改、ThinkPHP修改。

邮箱:yvsm@163.com 微信:yvsm316 QQ:316430983
关闭

用微信“扫一扫”