Php 使用fsockopen连接到服务器-连接被拒绝

Php 使用fsockopen连接到服务器-连接被拒绝,php,bukkit,fsockopen,Php,Bukkit,Fsockopen,我想做的是在我的网站上添加对Votifier插件的支持 我已经为Minecraft服务器转发了正确的端口,测试并确认它们已打开。还用于确认Votifier插件是否正常工作 然而,当我尝试使用一个PHP脚本连接到服务器时,我得到的只是一个被拒绝的连接 <?php error_reporting(E_ALL); // Details of the vote. $str = "VOTE\n" . "TopHCSMP\n" . "SlickTheNick666\n"

我想做的是在我的网站上添加对Votifier插件的支持

我已经为Minecraft服务器转发了正确的端口,测试并确认它们已打开。还用于确认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似乎正在断开连接,可能是因为加密不正确?

您得到的错误是连接被拒绝,这意味着ip地址或端口不正确。这些需要确认其正确性。由于您声明转发了端口,代码不起作用的另一个原因可能是您正在同一路由器后面运行脚本和minecraft服务器,并且您的路由器不支持,这并不表示您的脚本有问题,而是表示您的路由器缺少功能


代码中有更多错误,在计算剩余量时,不应将金额除以2,而应将其计算为
$leftover=(256-strlen($str))为防止输出块小于256并对Votifer协议的某些实现进行错误检测,默认Votifer插件不会检查其输入上的所有协议限制。

如果使用共享主机,出站端口8142可能会被阻止。例如,GoDaddy共享主机只允许在443和80上使用fsockopen。