Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在";下获取二级域;。英国";ccTLD_Java_Networking_Dns - Fatal编程技术网

Java 如何在";下获取二级域;。英国";ccTLD

Java 如何在";下获取二级域;。英国";ccTLD,java,networking,dns,Java,Networking,Dns,我有“.uk”ccTLD。我想检索它下面所有二级域的列表。我尝试使用包含不同字母组合和长度的StringBuilder(例如aa.uk-zz.uk、aaa.uk-zzz.uk)[代码如下所示。为了测试它,我最初计划使用Whois类。但经过两次测试后,我得到了“超出配额”作为答复。所以我放弃了这种可能性,因为每个IP地址都有一定的限制。是否可以访问和检索DNS名称服务器的二级域列表?如果是这样的话,请告诉我如何用java实现它 ` 公共类生成主{ public static void genDom

我有“.uk”ccTLD。我想检索它下面所有二级域的列表。我尝试使用包含不同字母组合和长度的StringBuilder(例如aa.uk-zz.uk、aaa.uk-zzz.uk)[代码如下所示。为了测试它,我最初计划使用Whois类。但经过两次测试后,我得到了“超出配额”作为答复。所以我放弃了这种可能性,因为每个IP地址都有一定的限制。是否可以访问和检索DNS名称服务器的二级域列表?如果是这样的话,请告诉我如何用java实现它

`

公共类生成主{

public static void genDomain(int iDomainLength, String sPredecessor,int iSubLevel) {

    //===========DECLARATIONS==============
    char[] arr_charAlphabets;
    String sDiffcombinations="";
    int[] arr_iPosition;
    int iTotalPossibilities;
    StringBuilder sBuilderComb;
    //==========END OF DECLARATIONS========


    //===========START OF ARRAY BUILDER===================
    //Build an array of characters storing all alphabets
    //a(97)-z(122) - lowercase only
    arr_charAlphabets = new char[26];
    for(int iIterator=97;iIterator<=122;iIterator++){
        arr_charAlphabets[iIterator-97] = (char) iIterator;
    }
    //===========END OF ARRAY BUILDER======================

    //===========START OF TEMPLATE BUILDER=================
    //This portion builds a template of <spaces> and
    //these <spaces> will be replaced with alphabets
    for(int iIterator=1;iIterator<=iDomainLength;iIterator++){
        sDiffcombinations+=" ";
    }
    //===========END OF TEMPLATE BUILDER===================
    sBuilderComb = new StringBuilder(sDiffcombinations);

    arr_iPosition = new int[iDomainLength];
    iTotalPossibilities = (int) Math.pow(26, iDomainLength);


    for (int iIterator1 = 0; iIterator1 < iTotalPossibilities; iIterator1++){

        for (int iIterator2 = 0; iIterator2 < iDomainLength; iIterator2++){

            if (arr_iPosition[iIterator2] == arr_charAlphabets.length){
                arr_iPosition[iIterator2] = 0;
                if (iIterator2 + 1 < iDomainLength) {
                    arr_iPosition[iIterator2 + 1]++;
                }
            }

            sBuilderComb.setCharAt(iIterator2, arr_charAlphabets[arr_iPosition[iIterator2]]);
        }

        arr_iPosition[0]++;
        //======================================================
        System.out.println(sBuilderComb.toString()+sPredecessor);

    }


}

public static void main(String[] args) {
    genDomain(2, ".uk", 1);
    System.out.println("Combinations of length 2 generated");
}
publicstaticvoidgendomain(int-iDomainLength,stringspredcessor,int-iSubLevel){
//=============声明==============
char[]arr_charAlphabets;
字符串sdiff=”;
int[]arr_i位置;
内在可能性;
StringBuilder sBuilderComb;
//=============声明结束========
//============开始阵列生成器===================
//构建一个存储所有字母的字符数组
//a(97)-z(122)-仅小写
arr_charAlphabets=新字符[26];

对于(int iIterator=97;iIterator首先,试图对一个区域中的所有名称进行暴力是一种高度反社会的行为,这会让你被列入黑名单。立即停止尝试

第二,你说你是为了一个大学项目而这样做的。在这种情况下,你应该在编写另一个字符的源代码之前真正了解DNS是如何工作的。学习是你在大学的首要原因,对吗


第三,获取其他人信息的正确方法不是违背他们的意愿(就像你现在所做的那样)从他们那里窃取信息。正确的方法是友好地要求他们将信息提供给你,并做好准备,让他们可能要求赔偿以将信息提供给你。“他们”在英国的案例中,
ccTLD是。你需要回答你的问题的所有信息都可以在他们的网站上找到。

现在只有一个问题-为什么?这是大学的一个项目请看这个,我还认为你可以使用网络爬虫来获取.UK子域的列表,生成域似乎不是一个可行的选择有几十个them@BorysZibrov网络爬虫是否保证会发现所有二级域?