ping( $_GET["ip"], isset($_GET["port"]) ? $_GET["port"] : 64738, ); if($res["server"]["name"] !== null){ $str = $res["server"]["name"]; }else{ $str = "Unknown serber name!!"; if(isset($_GET["name"])){ $str = $_GET["name"]; } } }catch(Exception $error){ $ip = isset($_GET["ip"]) ? $_GET["ip"] : "Unknown address"; $port = isset($_GET["port"]) ? $_GET["port"] : "???"; http_response_code(404); $res = [ "server" => [ "online" => "0", "max" => "0", "domains" => [ $ip ], "port" => $port, "country" => [ "code" => "blank" ] ] ]; $str = "Host unreachable!!"; } $im = new Imagick(); $im->newImage(468, 60, "#282828"); $im->setImageFormat("png"); // bg $bg = new Imagick("bg.png"); $im->compositeImage($bg, imagick::COMPOSITE_OVER, 367, 1); // text $stroke = new ImagickDraw(); $stroke->setStrokeColor("#504945"); $stroke->setFillColor("transparent"); $stroke->rectangle(0, 0, 467, 59); $im->drawImage($stroke); $draw = new ImagickDraw(); $draw->setFillColor("#ebdbb2"); $draw->setFontSize(13); $draw->setFont("COMIC.TTF"); $newstr = ""; if(strlen($str) > 84){ for($i=0; $i<84; $i++){ $newstr .= $str[$i]; } $str = trim($newstr) . "..."; unset($newstr); } $str = trim($str); $str = explode("\n", wordwrap($str, 45, "\n", true)); if(count($str) === 1){ $im->annotateImage($draw, 5, 25, 0, $str[0]); }else{ for($i=0; $i<2; $i++){ $im->annotateImage($draw, 5, (16 * $i) + 15, 0, $str[$i]); } } // flag if(idate("m") === 11){ $path = "flag/xmas/"; }else{ $path = "flag/"; } $merge = new Imagick($path . strtolower($res["server"]["country"]["code"]) . ".png"); $height = $merge->getImageHeight(); $im->compositeImage($merge, imagick::COMPOSITE_OVER, 5, 46 - ($height / 2)); // ip $draw->setFillColor("#bdae93"); $im->annotateImage($draw, 30, 51, 0, $res["server"]["domains"][0]); // users if($res["server"]["online"] > 0){ $name = "buddy.png"; }else{ $name = "buddy_alone.png"; } $buddy = new Imagick($name); $im->compositeImage($buddy, imagick::COMPOSITE_OVER, 340, 40); $im->annotateImage($draw, 360, 53, 0, $res["server"]["online"] . "/" . $res["server"]["max"]); // done. header("Content-Type: image/png"); echo $im->getImageBlob(); ?>