고객 중 한 명이 fsockopen()을 사용하여 서버가 온라인 상태인지 아닌지를 결정하는 매우 간단한 스크립트를 가지고 있다고 말했습니다. 그들은 최근까지 우리 웹 사이트에서 정상적으로 작동했지만 최근에는 작업이 중단되어 설정이라고 가정합니다.특정 웹 호스트에서 fsockopen()이 작동하지 않습니까?
내 첫 번째 생각은 TCP로 사용하고 게임 서버에 IP/포트를 사용했지만 그와 나 자신은 스크립트가 다른 여러 웹 호스트에서 제대로 작동했음을 확인했습니다.
특별히 우리에게 어떤 문제가있을 수 있습니까?
작품 : http://crazygfl.xfactorservers.com/query.php?ip=www.xfactorservers.com&port=80
작품 : http://crazygfl-stats.com/query.php?ip=109.73.163.231&port=27015
작동하지 않습니다 여기에
http://crazygfl.xfactorservers.com/query.php?ip=109.73.163.231&port=27015 코드입니다 ...
<?php
$timeout = (isset($_GET['timeout']) ? ($_GET['timeout'] <= 0 ? 30 : ((int)$_GET['timeout'])) : 30);
if(empty($_GET['ip'])&&empty($_GET['port'])){
echo 'No IP/Port specified.';
}else{
if(fsockopen($_GET['ip'], $_GET['port'], $errno, $errstr, $timeout) === false){
echo 'offline';
}else{
echo 'online';
}
}
fsockopen 기능이 비활성화되어 있지 않습니까? –
은 현명하고 정통한 사람이 다른 사람과 작동하지 않는 호스트의 요청을 차단했습니다 (다른 IP에 있다고 가정). 그 일관성없는 행동을 설명 할 것입니다 – sdolgy
"작품"/ "작동하지 않는"당신은 무엇을 의미합니까 메시지를 반환하지만 예상 하나? 출력이 없습니까? 시간 초과 되었습니까? – symcbean