REMOTE_ADDR如果用户使用了代理得到的是代理IP,所以增加判断用户是否启用了代理,如果使用了通过HTTP_X-Forwarded-For获取用户的真实IP地址,设置REMOTE_ADDR服务器变量为用户的真实ip地址
就是获取访问用户的真实ip地址
然后$sandbox变量存储sandbox/及使用md5(orange+用户ip)的值
mkdir就是从当前运行的php文件所在目录下创建$sandbox路径,chdir将 PHP 的当前目录改为$sandbox的路径,为后续的exec执行外部程序指定目录用
然后判断是否POST提交了url这个键名称的内容,未提交使用PHP内置的(highlight_file)语法高亮器所定义的颜色,打印输出当前运行的php(__FILE__)文件语法高亮版本的代码。
提交了则判断是否为合法的网址,合法的话parse_url 解析 URL,返回其组成部分,判断host主机名是否为127.0.0.1,是的话获取提交网址返回的内容,内容小于等于4个字符的话调用exec执行返回的程序($code存的的外部程序名称)
总的来说就是访问这个php脚本时,在每个访客的ip地址所在目录(md5过)内执行本机返回的程序
if 判断客户端IP地址是否存在(透过代理服务器取得客户端的真实 IP 地址){
explode() 函数把字符串打散为数组。
获取数组的0个元素
}
输出远程地址
函数计算字符串的 MD5 散列。
@mkdir. 代表执行mkdir时不会返回或弹出错误提示
chdir() 函数改变当前的目录。
if 判断(预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。)
if( filter_var() 函数通过指定的过滤器过滤变量。如果成功,则返回已过滤的数据,如果失败,则返回 false。)
parse_url()函数——解析URL,返回其组成部分
if( preg_match() 函数可以根据正则表达式对字符串进行搜索匹配,)
file_get_contents() 函数把整个文件读入一个字符串中
if(函数返回字符串 的长度:){
exec()函数用来执行一个外部程序
else 打印字符串
highlight_file() 函数对文件进行语法高亮显示。