{"id":556,"date":"2023-11-02T01:21:20","date_gmt":"2023-11-01T16:21:20","guid":{"rendered":"https:\/\/etqw.iobb.net\/?p=556"},"modified":"2023-11-02T01:21:20","modified_gmt":"2023-11-01T16:21:20","slug":"realtime-server-status%e3%82%92%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ab%e5%bc%b5%e3%82%8a%e4%bb%98%e3%81%91%e3%82%8b","status":"publish","type":"post","link":"https:\/\/etqw.tplinkdns.com\/?p=556","title":{"rendered":"RealTime Server Status\u3092\u30b5\u30a4\u30c8\u306b\u5f35\u308a\u4ed8\u3051\u308b"},"content":{"rendered":"\n<p>qstat\u3092\u5229\u7528\u3057\u3066\u30b2\u30fc\u30e0\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u60c5\u5831\u3092\u5438\u3044\u51fa\u3057\u3066PHP\u3092\u4f7f\u3063\u3066\u8868\u793a\u3055\u305b\u308b\u65b9\u6cd5<\/p>\n\n\n\n<p>\u3068\u3044\u3046\u304b\u5f53\u6687\u3064\u3076\u3057\u30b5\u30fc\u30d0\u30fc\u306eTOYBOX60\u306b\u4f7f\u7528\u3057\u3066\u3044\u308b\u751f\u30c7\u30fc\u30bf\u30fc\u3002<\/p>\n\n\n\n<p>gamespy\u3084gametracker\u306a\u3069\u3092\u4f7f\u308f\u305a\u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30fc\u30f3\u3067\u5b8c\u7d50\u3002<\/p>\n\n\n\n<p>\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u304c\u6df7\u3056\u3063\u3066\u308b\u306e\u3067\u9069\u5b9c\u30b5\u30a4\u30c8\u306e\u5909\u6570\u306a\u308a\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>php\u304c\u6c5a\u3044\u3068\u304bexec\u4f7f\u3046\u306a\u3068\u304b\u82e6\u60c5\u306f\u52d8\u5f01\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u7ba1\u7406\u8005\u306f\u72ec\u5b66\u306a\u306e\u3067\u7d30\u304b\u3044\u8cea\u554f\u306b\u306f\u7b54\u3048\u3089\u308c\u306a\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8a2a\u554f\u8005\u304c\u591a\u3044\u30da\u30fc\u30b8\u3001\u4e0b\u54c1\u306a\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u304c\u6765\u308b\u5834\u5408\u306f\u30da\u30fc\u30b8\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u8abf\u6574\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30ed\u30fc\u30c9\u30a2\u30d9\u30ec\u30fc\u30b8\u304c\u75db\u3044\u4e8b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<pre class=\"wp-block-preformatted\">&lt;?php\n\n$pid = exec(\"ps aux | grep etded.x86 | grep server1 | grep -v \\\"sh\\\" | awk '{print $2}'\");\n\nif (empty($pid)) {\n\techo \"&lt;table width=\\\"100%\\\" class=\\\"status-table\\\"&gt;\";\n\techo \"&lt;tr&gt;\\n\";\n\techo \"&lt;td&gt;\\n\";\n\tinclude('statusET.inc');\n\techo \"&lt;br \/&gt;\\n\";\n\techo \"&lt;font color='ff0000'&gt;Suspended&lt;\/font&gt;&lt;br \/&gt;&lt;br \/&gt;\\n\";\n\techo \"&lt;\/td&gt;\\n&lt;\/tr&gt;\\n&lt;\/table&gt;\\n\";\n    } else {\n    $etstarttime = exec(\"ps u $pid | awk '{print $9}'\");\n    $etruntime = exec(\"ps -p $pid -o etime\");\n    $null = \"START\";\n    exec(\"\/usr\/local\/bin\/qstat -raw , -rws 127.0.0.1:27960 -R\", $qserver, $emp);\n\t\n\n    $ets = explode(\",\", $qserver[0]);\n\t$ets1 = explode(\",\", $qserver[1]);\n    $pb = preg_replace(\"\/punkbuster=\/\", \"\", $ets1[9]);\n    $team = preg_replace(\"\/balancedteams=\/\", \"\", $ets1[13]);\n    $weap = preg_replace(\"\/weaprestrict=\/\", \"\", $ets1[12]);\n    $lag = preg_replace(\"\/g_antilag=\/\", \"\", $ets1[11]);\n    $pass = preg_replace(\"\/needpass=\/\", \"\", $ets1[8]);\n    $live = preg_replace(\"\/maxlives=\/\", \"\", $ets1[7]);\n    $ff = preg_replace(\"\/friendlyFire=\/\", \"\", $ets1[6]);\n    $team2 = preg_replace(\"\/P=\/\", \"\", $ets1[15]);\n    $team3 = preg_replace(\"\/-\/\", \"\", $team2);\n\n    exec(\"\/usr\/local\/bin\/qstat -rws 127.0.0.1:27960 -P | grep 'frags'\", $lines ,$emp);\n    $CRow = \"Textback\";\n    $gpass = file_get_contents(\"\/var\/www\/html\/toybox_pass.inc\");\n\n    echo \"&lt;table width=\\\"100%\\\" class=\\\"status-table\\\"&gt;\\n\";\n    echo \"&lt;tr&gt;\\n&lt;td width=\\\"50%\\\"&gt;&lt;img alt='$ets[3]' title='$ets[3]' src=\\\".\/images\/et\/$ets[3].jpg\\\"&gt;&lt;br \/&gt;$ets[3]&lt;\/td&gt;\\n\";\n    echo \"&lt;td width=\\\"50%\\\"&gt;Socket:$ets[5]\/$ets[4]\\n\"; \n    echo \"&lt;br \/&gt;Password:$gpass&lt;br \/&gt;\";\n\n    if ($pb == 1) {\n        echo \"&lt;img alt='Punkbuster Enable' title='Punkbuster Enable' src=\\\".\/images\/pb.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n        } else {\n        echo \"\";\n    }\n\n    if ($ff == 1) {\n        echo \"&lt;img alt='Friendly Fire' title='Friendly Fire' \n        src=\\\".\/images\/ff.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n    } else {\n        echo \"\";\n    }\n\n    if ($team == 1) {\n        echo \"&lt;img alt='Force Team Balance' title='Force Team BalanceForce' src=\\\".\/images\/balance.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n    } else {\n        echo \"\";\n    }\n\n    if ($weap &lt; 100) {\n        echo \"&lt;img alt='Heavy Weapons Restriction' title='Heavy Weapons Restriction' src=\\\".\/images\/weap.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n    } else {\n        echo \"\";\n    }\n\n    if ($lag == 1) {\n        echo \"&lt;img alt='AntiLag Enable' title='AntiLag Enable' src=\\\".\/images\/antilag.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n    } else {\n        echo \"\";\n    }\n\n    if ($pass == 1) {\n        echo \"&lt;img alt='Private Server' title='Private Server' src=\\\".\/images\/pass.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n    } else {\n        echo \"\";\n    }\n\n    if ($live == 1) {\n        echo \"&lt;img alt='MaxLives Enable' title='MaxLives Enable' src=\\\".\/images\/live.png\\\" width=\\\"27\\\" height=\\\"27\\\"&gt;\";\n    } else {\n        echo \"\";\n    }\n\n    echo \"&lt;\/td&gt;\\n&lt;\/tr&gt;\\n&lt;\/table&gt;\\n\";\n    echo \"&lt;table width='100%' class='status-table'&gt;\\n&lt;tr&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;No.&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;Player Name&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;Team&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;&lt;div style='text-align:right; font-size:100%'&gt;Score&lt;\/div&gt;&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;&lt;div style='text-align:right; font-size:100%'&gt;ping&lt;\/div&gt;&lt;\/td&gt;\\n\";\n    echo \"&lt;\/tr&gt;\\n\";\n\n    foreach ($lines as $line_num =&gt; $line) {\n        if ($CRow == \"Textback\"){\n            $CRow = \"Text\";\n        } else {\n            $CRow = \"Textback\";\n        }\n        $byte = strlen($line);\n        $ping2 = strpos($line, 'ms');\n        $ping = substr($line, $ping2 - 4, 6);\n\t$ping = trim($ping, \" \\t\\n\\r\\0\\x0B\");\n        $name2 = substr($line, $ping2 + 4, $byte - $ping2 + 4);\n        $frags2 = strpos($line, 'fr');\n        $frags = substr($line, 0, $frags2);\n\t$frags = trim($frags, \" \\t\\n\\r\\0\\x0B\");\n        $number = ($line_num + 1);\n        $name = htmlspecialchars ($name2);\n        $team4 = substr($team3, $line_num, 1);\n\n        if ($team4 == 0) {\n            $team = \"Waiting\";\n        } else {\n            if ($team4 == 1) {\n                $team = \"Axis\";\n            } else {\n                if ($team4 == 2) {\n                    $team = \"Allies\";\n                } else {\n                    $team = \"Spect\";\n                }\n            }\n        }\n\n    $name = mb_strimwidth($name, 0, 17, \"...\");\n    echo \"&lt;tr&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;$number&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;$name&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;$team&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;&lt;div style='text-align:right; font-size:100%'&gt;$frags&lt;\/div&gt;&lt;\/td&gt;\\n\";\n    echo \"&lt;td class='$CRow'&gt;&lt;div style='text-align:right; font-size:100%'&gt;$ping&lt;\/div&gt;&lt;\/td&gt;\\n\";\n\n    }\n\necho \"&lt;tr&gt;\\n&lt;td colspan='5'&gt;boot at $etstarttime. $etruntime times running.&lt;\/td&gt;\\n\";\necho \"&lt;\/tr&gt;\\n&lt;\/table&gt;\\n\";\n\n}\n\n?&gt;<\/pre>\n<\/blockquote>\n\n\n\n<p>\u591a\u5206\u30b3\u30d4\u30da\u3067\u306f\u52d5\u304b\u306a\u3044\u3068\u304a\u3082\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>qstat\u3092\u5229\u7528\u3057\u3066\u30b2\u30fc\u30e0\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u60c5\u5831\u3092\u5438\u3044\u51fa\u3057\u3066PHP\u3092\u4f7f\u3063\u3066\u8868\u793a\u3055\u305b\u308b\u65b9\u6cd5 \u3068\u3044\u3046\u304b\u5f53\u6687\u3064\u3076\u3057\u30b5\u30fc\u30d0\u30fc\u306eTOYBOX60\u306b\u4f7f\u7528\u3057\u3066\u3044\u308b\u751f\u30c7\u30fc\u30bf\u30fc\u3002 gamespy\u3084gametracker\u306a\u3069\u3092\u4f7f\u308f\u305a\u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30fc [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":516,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"common","vkexunit_cta_each_option":"","footnotes":""},"categories":[5,4],"tags":[],"class_list":["post-556","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-game-sever","category-server"],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/posts\/556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=556"}],"version-history":[{"count":5,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/posts\/556\/revisions"}],"predecessor-version":[{"id":564,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/posts\/556\/revisions\/564"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=\/wp\/v2\/media\/516"}],"wp:attachment":[{"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/etqw.tplinkdns.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}