Team Ai
Apppublic

errorcode418/php

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
index.php228 linesDownload Raw Back to mc
1<?php2 3/*4* 原项目开源地址:https://github.com/xhboke/IP5* 二开开源地址:https://github.com/2031301686/ip-sign/6* 更新地址:https://wxsnote.cn/2762.html7* 二开作者:天无神话-王先生笔记8* 博客地址:https://wxsnote.cn/2762.html9*/10 11 12header("Content-type: image/JPEG");13use UAParser\Parser;14require_once './vendor/autoload.php';15 16//获取真实IP,注意主要为CDN站点服务,若无CDN,有被伪造的可能17function wxs_get_ip() {18	if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {19		$ip = getenv('HTTP_CLIENT_IP');20	} elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {21		$ip = getenv('HTTP_X_FORWARDED_FOR');22	} elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {23		$ip = getenv('REMOTE_ADDR');24	} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {25		$ip = $_SERVER['REMOTE_ADDR'];26	}27	return preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches[0] : '';28}29 30 31//公共变量32$ip = wxs_get_ip();33$ua = $_SERVER['HTTP_USER_AGENT'];34$get = $_GET["s"];35$get = base64_decode(str_replace(" ","+",$get));36$weekarray = array("日","一","二","三","四","五","六");37//ua38$parser = Parser::create();39$result = $parser->parse($ua);40$os = $result->os->toString();41// Mac OS X42$browser = $result->device->family.'-'.$result->ua->family;43// Safari 6.0.2 44 45//必须信息46//高德key47$gd_key = 'f80829927c887932b780ccf933ee8326';48$gd_Secret_key ="f80829927c887932b780ccf933ee8326";49//腾讯key50$tx_key = 'EM5BZ-BTAKZ-NEGXD-7JXQ4-SDJUZ-O2B6V';51$tx_Secret_key ="RtFKvYzBMNNPHutQseF5ne5LAutiCp6o";52 53 54//高德api55function gd_api($ip, $gd_key, $gd_Secret_key) {56    $gd_api_url = 'http://restapi.amap.com/v3/ip?key='.$gd_key.'&ip='.$ip;57    58    if ($gd_Secret_key) {59            $gd_api_url .= '&sig=' . md5('ip=' . $ip . '&key=' . $gd_key . $gd_Secret_key);60        }61        62    $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';63    $curl = curl_init();64    curl_setopt($curl, CURLOPT_URL, $gd_api_url);65    curl_setopt($curl, CURLOPT_HEADER, 0);66    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);67    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);68    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);69    curl_setopt($curl, CURLOPT_ENCODING, '');70    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);71    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);72    $data = curl_exec($curl);73    // 将JSON响应转换为关联数组74    $data = json_decode($data, true);75    76    // 提取province和city77    $province = $data['province'];78    $city = $data['city'];79    80    // 返回仅包含province和city的数组81    return array('province' => $province, 'city' => $city);82}83 84 85//腾讯api86function tx_api($ip, $tx_key, $tx_Secret_key) {87    //通过腾讯接口获取88    $tx_api_url = 'http://apis.map.qq.com/ws/location/v1/ip?ip=' . $ip . '&key=' . $tx_key;89    //签名校验90    if ($tx_Secret_key) {91        $tx_api_url .= '&sig=' . md5('/ws/location/v1/ip?ip=' . $ip . '&key=' . $tx_key . $tx_Secret_key);92    }93        94    $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';95    $curl = curl_init();96    curl_setopt($curl, CURLOPT_URL, $tx_api_url);97    curl_setopt($curl, CURLOPT_HEADER, 0);98    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);99    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);100    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);101    curl_setopt($curl, CURLOPT_ENCODING, '');102    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);103    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);104    $data = curl_exec($curl);105    // 将JSON响应转换为关联数组106    $data = json_decode($data, true);107    108    // 提取province和city109    $province = $data['result']['ad_info']['province'];110    $city = $data['result']['ad_info']['city'];111    112    // 返回仅包含province和city的数组113    return array('province' => $province, 'city' => $city);114}115 116 117//太平洋api118function tpy_api($ip) {119    120    $tpy_api_url = 'http://whois.pconline.com.cn/ipJson.jsp?json=true&ip=' . $ip;121    $UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36';122    123    $curl = curl_init();124    curl_setopt($curl, CURLOPT_URL, $tpy_api_url);125    curl_setopt($curl, CURLOPT_HEADER, 0);126    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);127    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);128    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);129    curl_setopt($curl, CURLOPT_ENCODING, '');130    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);131    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);132    $data = curl_exec($curl);133    $data = mb_convert_encoding($data, 'UTF-8', 'GBK');134    135    // 将JSON响应转换为关联数组136    $data = json_decode($data, true);137    138    if(isset($data['pro'])) {139        $province = $data['pro'];140    }141    142    if(isset($data['city'])) {143        $city = $data['city'];144    }145    146    // 返回仅包含province和city的数组147    return array('province' => $province, 'city' => $city);148}149 150 151// 调用高德API152$gd_data = gd_api($ip, $gd_key, $gd_Secret_key);153 154// 处理高德API返回的数据155$gd_data_json = json_encode($gd_data);156$gd_data = json_decode($gd_data_json, true);157 158// 判断高德API返回数据是否包含地址信息159if (!empty($gd_data['province']) && !empty($gd_data['city'])) {160    // 判断省份和城市是否相同,如果相同则只输出城市161    if ($gd_data['province'] == $gd_data['city']) {162        $address = $gd_data['city'];163    } else {164        $address = $gd_data['province'] . '-' . $gd_data['city'];165    }166} else {167    // 调用腾讯API168    $tx_data = tx_api($ip, $tx_key, $tx_Secret_key);169    170    // 处理腾讯API返回的数据171    $tx_data_json = json_encode($tx_data);172    $tx_data = json_decode($tx_data_json, true);173    174    // 判断腾讯API返回数据是否包含地址信息175    if (!empty($tx_data['province']) && !empty($tx_data['city'])) {176        // 判断省份和城市是否相同,如果相同则只输出城市177        if ($tx_data['province'] == $tx_data['city']) {178            $address = $tx_data['city'];179        } else {180            $address = $tx_data['province'] . '-' . $tx_data['city'];181        }182    } else {183        // 调用太平洋API184        $tpy_data = tpy_api($ip);185 186        // 判断太平洋API返回数据是否包含地址信息187        if (!empty($tpy_data['province']) && !empty($tpy_data['city'])) {188            // 判断省份和城市是否相同,如果相同则只输出城市189            if ($tpy_data['province'] == $tpy_data['city']) {190                $address = $tpy_data['city'];191            } else {192                $address = $tpy_data['province'] . '-' . $tpy_data['city'];193            }194        } else {195            $address = '神秘星球';196        }197    }198}199 200//定义背景201$im = imagecreatefromjpeg("./xhxh.jpg");202//定义颜色203$black = ImageColorAllocate($im, 0,0,0);204//定义颜色的值为红色205$blue = ImageColorAllocate($im, 30,232,255);206//加载字体207$font = 'msyh.ttf';208//输出209imagettftext($im, 15, 0, 30, 40, $black, $font,'欢迎您,来自 Linux.do 的朋友');210imagettftext($im, 15, 0, 30, 80, $black, $font, '今天是'.date('Y年n月j日').' 星期'.$weekarray[date("w")]);211//当前时间添加到图片212imagettftext($im, 15, 0, 30, 120, $black, $font,'您的IP是:'.$ip.'');213//ip214imagettftext($im, 15, 0, 30, 160, $black, $font,'您使用的是'.$os.'操作系统');215imagettftext($im, 13, 0, 30, 190, $black, $font,'Powerd by PHP-7.2');216ImageGif($im);217ImageDestroy($im);218function curl_get($url, array $params = array(), $timeout = 6) {219	$ch = curl_init();220	curl_setopt($ch, CURLOPT_URL, $url);221	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);222	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);223	$file_contents = curl_exec($ch);224	curl_close($ch);225	return $file_contents;226}227?>228