C段查询之在Java中实现的命令行版

一 介绍

这是我用Java写的一个C段查询的工具,目前还在完善中,现在只有一个命令行版的,GUI界面还没有写。由于用的是免费的接口,因此请求过快会出现各种异常,所以当每个IP查询后我都让线程休眠了2秒钟。总体算下来,扫描一个C段大概需要花11-15分钟左右。


二 这篇文章中用到的前置内容

这里需要用到的是:(1)单个IP反查域名;(2)查域名IP

C段查询雏形之在Java中反查一个IP上的所有域名(旁站查询)

在Java中调用CMD的ping命令查询域名IP


三 函数核心:

/**
	 * 针对一个域名或者IP,进行查询它C段上的域名
	 * 
	 * @param domainOrIP 域名或者IP的字符串
	 * 
	 * @return 暂时只是终端输出,无返回值
	 * */
	public void CQuery(String domainOrIP){
//		StringBuffer stringBuffer = new StringBuffer();
		FindIP myIp = new FindIP();
		
		String ip = myIp.getDomainIP("/c ping " + domainOrIP);  //IP地址
		String ip_head = "";  //IP地址的前3段
		String ip_temp = "";  //C段中的临时IP

		String reg_ip = "(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5]))?";  //取出IP的前3段
		Pattern pattern = Pattern.compile(reg_ip);
		Matcher matcher = pattern.matcher(ip);
		if(matcher.find()){
			ip_head = matcher.group();
			ip_temp = ip_head + "." + String.valueOf(1);
			
			//正式开始C段查询,前面3处相同,只有最后一处是从 1-->254
			SearchDomainByIP searchDomain = new SearchDomainByIP();
			Set<String> set = new HashSet<String>();		
			for(int i = 1;i < 255;i++){
				ip_temp = ip_head + "." + String.valueOf(i);
				set = searchDomain.getDomains(ip_temp);

				Iterator<String> iterator = set.iterator();
				System.out.println("针对IP:" + ip_temp + ",一共查到 " + set.size() + "个旁站");
				while(iterator.hasNext()){
//					stringBuffer.append(iterator.next());
					System.out.println(iterator.next());					
				}
				
				try {
					Thread.sleep(2000);  //每个IP查询结束休眠时间,单位是毫秒
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}else{
			System.out.println(ip);
		}
	
//		return stringBuffer.toString();
	}

四 测试:

测试用例:

public static void main(String[] args) {
		CQueryDemo queryDemo = new CQueryDemo();
		queryDemo.CQuery("www.360360.pw");

	}

输出:

针对IP:162.211.183.1,一共查到 0个旁站
针对IP:162.211.183.2,一共查到 3个旁站
www.akmigfashijia.com
www.lfyipinjiayuan.com
www.mylostreturn.com
针对IP:162.211.183.3,一共查到 0个旁站
针对IP:162.211.183.4,一共查到 0个旁站
针对IP:162.211.183.5,一共查到 0个旁站
针对IP:162.211.183.6,一共查到 2个旁站
www.shenghezhuang.com
hcesc.yao.cl
针对IP:162.211.183.7,一共查到 1个旁站
rhmtczt.info.gf
针对IP:162.211.183.8,一共查到 0个旁站
针对IP:162.211.183.9,一共查到 0个旁站
针对IP:162.211.183.10,一共查到 1个旁站
xht.xhtqm6.cc
针对IP:162.211.183.11,一共查到 5个旁站
555198.com
www.555189.com
bb8080.com
555189.com
www.555198.com
针对IP:162.211.183.12,一共查到 0个旁站
针对IP:162.211.183.13,一共查到 1个旁站
www.hltzs.com
针对IP:162.211.183.14,一共查到 7个旁站
www.667703.com
www.123598.com
www.667704.com
667703.com
667704.com
www.667706.com
www.667702.com
针对IP:162.211.183.15,一共查到 3个旁站
www.acznk.com
hgxjw.yjdx.net
www.420dj.com
(PS:后面省略)


你可能感兴趣的:(java,旁注,C段查询,IP反查)