1

これは私が から入手したプログラムですJava Complete Reference: 7th Edition。少し変更されています。

import java.net.*;
import java.io.*;

public class WhoIs {
    public static void main(String[] args) throws Exception{
        Socket s = new Socket("internic.net",43);

        OutputStream os = s.getOutputStream();
        String domain = "facebook.com"+"\n";
        byte[] stringToByte = domain.getBytes();
        os.write(stringToByte);

        InputStream is = s.getInputStream();
        InputStreamReader reader = new InputStreamReader(is);
        BufferedReader buf = new BufferedReader(reader);

        String temp;
        while((temp=buf.readLine())!="\n"){
            System.out.println(temp);
        }
    }
}  

Facebookに連絡internic.netして情報を取得するだけです。ただし、ソケットは接続されません。次のように例外が発生します。

Exception in thread "main" java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at javacomplete.WhoIs.main(WhoIs.java:8)  

データを読み戻すことを除いて、すべては本とまったく同じです。私は単文字を読む ためにBufferedReader使用された本を使用しました。InputStream

ヘルプ!なぜ繋がらない??

4

2 に答える 2

4

正しいホスト名は次のwhois.internic.netとおりinternic.netです。

$ telnet internic.net 43
Trying 192.0.43.9...
telnet: connect to address 192.0.43.9: Connection refused
Trying 2001:500:88:200::9...
telnet: connect to address 2001:500:88:200::9: No route to host
telnet: Unable to connect to remote host

$ telnet whois.internic.net 43
Trying 199.7.56.74...
Connected to whois.internic.net.
Escape character is '^]'.
于 2013-02-02T19:16:42.373 に答える
1

internic.net「接続が拒否されました」というエラーから明らかなように、ポート 43で実行されている WHOIS サーバーはありません。

どの WHOIS サーバーに連絡しますか? ほとんどのドメイン レジストラは WHOIS サーバーを実行し、多くの ccTLD オペレーターも 1 つを実行し (例: ccTLK 用)、すべての RIR (ARIN、RIPE など) が 1 つを実行whois.cira.caし、gTLD レジストリ用に1 つ存在します。など...cawhois.internic.net

于 2013-02-02T19:16:27.713 に答える