2016-06-18 19 views
0

ローカルのMinecraft Serverがセットアップされています。 ipsは本当にかわいいので、私は自分自身のドメインを取得することに決めました。問題は、私のルーターのIPアドレスが毎晩変わるので、私は自分のIPアドレスにAレコードを送ることができないということです。代わりに私は私自身のドメインの使用を可能にする動的DNSプロバイダが必要です。私は1つを見つけることができなかったので、PHPで自分でコード化しました(静的IPアドレスを持つ無料のWebサーバーがあります)。ここでの.phpファイルのコードがあります:PHPを使用したMinecraftサーバーからIPへのリダイレクト

<? 
    $usernameTest = $_GET["username"]; 
    $passTest = $_GET["pass"]; 
    $ipaddr = $_GET["ipaddr"]; 

    $username = "USERNAME"; 
    $pass = "*****"; 
    $port = ":25565"; 
    $serverIPtxt = "serverIP.txt"; 

    if(file_exists($serverIPtxt)) { 
     if($usernameTest == $username) { 
      if($passTest == $pass) { 
       $a = fopen("$serverIPtxt", "w"); 
       fwrite($a, $ipaddr); 
       fclose($a); 
       echo $ipaddr; 
      } 
     } else { 
      $a = fopen("$serverIPtxt", "r+"); 
      $dynIP = fread($a, filesize($serverIPtxt)); 
      fclose($a); 

      $url="http://".$dynIP."".$port; 
      header("Location: $url", true); 
      die(); 
     } 
    } 
?> 

私のルータが自動に正しいIPアドレスを適用しているので、理論的には、私は私の新しいドメインでのMinecraftサーバーに接続することができるはずですが、私はカント。代わりにMinecraftが私にこのエラーを表示します:

[13:52:38] [Client thread/INFO]: Connecting to DOMAIN, 25565 
[13:52:39] [Server Connector #5/ERROR]: Couldn't connect to server 
java.net.ConnectException: Connection refused: no further information: DOMAIN/IPADDRESS:25565 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:1.8.0_25] 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716) ~[?:1.8.0_25] 
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:208) ~[NioSocketChannel.class:4.0.23.Final] 
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:287) ~[AbstractNioChannel$AbstractNioUnsafe.class:4.0.23.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528) ~[NioEventLoop.class:4.0.23.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) ~[NioEventLoop.class:4.0.23.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) ~[NioEventLoop.class:4.0.23.Final] 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) ~[NioEventLoop.class:4.0.23.Final] 
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[SingleThreadEventExecutor$2.class:4.0.23.Final] 
    at java.lang.Thread.run(Thread.java:745) ~[?:1.8.0_25] 

私は間違っていますか?または、MinecraftはPHPリダイレクトをサポートしていませんか?

+0

動的IPアップデートクライアントを使用します。 –

答えて

1

MinecraftはHTTPを使用しません! TCPに基づく独自のプロトコルを使用します。

これまで私が使っていた最適なオプションは、動的IPアップデートクライアントを実行することです。

  1. myname.ddns.netを指すようにCNAME(あなたNOIPドメイン名)としてカスタムドメイン名を設定し
  2. (Windows版、MacやLinuxで利用可能)dynamic updater clientをダウンロードして自分でNo-IP domain name(例えばmyname.ddns.net
  3. を取得
  4. プレーヤーにカスタムドメイン名を与えます(例:myname.com)。これにより、クライアントはmyname.ddns.netにCNAMEレコードを介してアクセスし、Aレコードとして動的IP(例:xxx.xxx.xxx.xxx)を参照します。

この後、カスタムドメインでサーバーに接続すると、ダイナミックアップデータは動的IPを自動的に最新の状態に保ちます。

+0

私は以前このソリューションを持っていましたが、.ddns.netのようなものは欲しませんが、最初は.playを使って自分のドメイン –

+0

@derkaländer手順3をお読みでしたか? No-IPドメインはあなたの選手には表示されません。カスタムドメイン名を与えるだけです。 –

+1

私は別の解決策を見つけただけであなたに伝えたいと思います。私のルーターでは、特別なURLを使って世界中の設定を変更することができます。このURLは私のipを指しているので、私は単に自分のドメインをそのURLのCNAMEとして設定します。しかしあなたのアイデアはもちろん、うまくいくでしょう。 –

関連する問題