Как получить онлайн другого сервера?
Api: 3.0.0
public function getOnline($ip, $port) {
$socket = fsockopen("udp://".$ip, $port);
fwrite($socket, "\x01" . "\0\0\0\0\0\0\0\0" . "\x00\xff\xff\x00\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\x12\x34\x56\x78");
if(($data = fread($socket, 1024)) !== false) {
if(isset(explode(";", substr($data, 35))[4])) {
$online = explode(";", substr($data, 35))[4];
return $online;
}else{
return 0;
}
}
}
$a = $this->getOnline("127.0.0.1",19132);
Старый код @Nik1t0n4ik
1 лайк
Интересно
неплохо
Не пиши мне
В игнор кин и всё
public function getOnline(string $ip, int $port) : int {
$socket = fsockopen("udp://". $ip, $port);
stream_set_timeout($socket, 5);
$pk = new UnconnectedPing();
$pk->sendPingTime = PHP_INT_MAX;
$pk->clientId = PHP_INT_MAX;
$pk->encode();
fwrite($socket, $pk->buffer);
if(($data = fread($socket, 4096)) !== false){
if(isset($data[4])){
$online = explode(";", substr($data, 35))[4];
return $online;
}
return 0;
}
return 0;
}
1 лайк