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