Whois通过代理服务器查找:java.lang.IllegalArgumentException:无效的代理

时间:2014-06-21 11:05:18

标签: java proxy whois

我试过这个......给了我一个java.lang.IllegalArgumentException: Invalid Proxy。 getter从文本文件填充代理和端口。

    //Imports
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.net.*;
    import java.util.ArrayList;

    import org.apache.commons.net.whois.WhoisClient;

    public void  whoisCheck(String host) {
        SocketAddress addr = new InetSocketAddress(getProxy(), getPort)
        Proxy useProxy = new Proxy(Proxy.Type.HTTP, addr);

        WhoisClient whoisClient = new WhoisClient();
        whoisClient.setProxy(useProxy);
        whoisClient.connect(IANA_WHOIS_SERVER, WHOIS_PORT);
        tmpStr = whoisClient.query(host);
        whoisClient.disconnect();
    }

1 个答案:

答案 0 :(得分:0)

whois是通过TCP端口43运行的协议,而不是通过HTTP / HTTPS。它没有代理的概念。

出于这两个原因,请不要使用HTTP库连接到whois服务器,因为这将无法正常使用。你会创造太多问题。相反,要么在您的编程语言中使用特定的whois库,要么只是在端口43上打开TCP套接字,在其上写下您的查询,按CR + LF结束并将服务器的回复读回一团文字。

如果您需要隐藏您的IP地址,您需要采用典型的IP级别"重定向"像隧道或SOCKS库。