Что я пытаюсь сделать, это добавить поддержку плагина Votifier на моем сайте.Использование fsockopen для подключения к серверу - отказалось
Я переправил правильные порты для сервера Minecraft, протестировал и подтвердил, что они открыты. Также используется Minestatus, чтобы убедиться, что плагин Votifier работает правильно.
Однако, когда я пытаюсь использовать PHP-скрипт, который я нашел для подключения к серверу, все, что я получаю, - это отказ в соединении.
<?php
error_reporting(E_ALL);
// Details of the vote.
$str = "VOTE\n" .
"TopHCSMP\n" .
"SlickTheNick666\n" .
"50.98.149.40\n" .
time()."\n";
// Fill in empty space to make the encrypted block 256 bytes.
$leftover = (256 - strlen($str))/2;
while ($leftover > 0) {
$str .= "\x0";
$leftover--;
}
// The public key, this is an example.
$key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkFywgrx2fPXL/CPS1Gi5/a7zoTfWV9fqrhsJMzPqqC0CnLBBkg8VUiwnBVsMvhJrUT1mLvyHx5H9dobTVlE+aoxcsDRa1Yc9OAUKHspxrPswRW6/Yn85YAghOSBZfgPoXD3Q0Ng5jkJUoBUHOBtFHDUeAHi5av36iJ8dTQTSaOyAXKGdB88TOzre5cpnj5oDi/JSJ0bCJx7cgcBAO1TvOVuFMTXhygDyEVh6 o2nn8+qdDlEPXf+m+dxdkH3zWkkWjY4OittIpaHj2n8ihgPqwMPZFH1CXkoTjoSh4Fo7KtUAaAa4gt5w/thauozG25G 1s2XSigNgCDDvg4S8awmtewIDAQAB";
$key = wordwrap($key, 65, "\n", true);
$key = <<<EOF
-----BEGIN PUBLIC KEY-----
$key
-----END PUBLIC KEY-----
EOF;
// Encrypt the string.
openssl_public_encrypt($str, $encrypted, $key);
// Establish a connection to Votifier.
$socket = fsockopen("50.98.149.40", "8192", $errno, $errstr, 2);
if (!$socket) {
die("Failed to connect to Votifier.");
}
// Send the contents of the encrypted block to Votifier.
fwrite($socket, $encrypted);
?>
Похоже, что Votifier отключает соединение, возможно, потому что шифрование не является правильным?
Если вы используете общий хостинг, исходящий порт 8142 может быть заблокирован. Например, общий хостинг GoDaddy позволяет использовать только fsockopen на 443 и 80. – Drakes