Java实现C段域名IP采集
只要再简简单单的封装一下就能够以在线的方式供别人查询了。
package net.ltan.bbs.util;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DomainUtil {
static Pattern urlMatcher = Pattern.compile("(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?");// 抓网址
/**
* 返回c段Ip list
*
* @param s
* @param e
* @return
*/
public static List<String> createCIp(String s, String e) {
String[] sarr = s.split("\\.");
String[] earr = e.split("\\.");
List<String> ip = new ArrayList<String>();
if (Integer.parseInt(earr[2]) - Integer.parseInt(sarr[2]) > -1) {
for (int i = Integer.parseInt(sarr[2]); i < Integer
.parseInt(earr[2]) + 1; i++) {
for (int j = 1; j < 256; j++) {
// ip.add(sarr[0]+"."+sarr[1]+"."+i+"."+j);
System.out.println("http://sameip.org/ip/" + sarr[0] + "."+ sarr[1] + "." + i + "." + j);
getDomain(SendHttpRequest.sendGetRequest("http://sameip.org/ip/" + sarr[0]+ "." + sarr[1] + "." + i + "." + j));
}
}
}
return ip;
}
public static void get(){
getDomain(SendHttpRequest.sendGetRequest("http://sameip.org/ip/vip.qq.com"));
}
public static void getDomain(String sourceCode) {
String urlS = "<table cellspacing=\"1\" width=\"100%\">";
if (sourceCode.indexOf(urlS) != -1) {
String urlE = "</table>";
sourceCode = sourceCode.substring(sourceCode.indexOf(urlS)+ urlS.length(), sourceCode.indexOf(urlE));
Matcher matcher = urlMatcher.matcher(sourceCode);
while(matcher.find()){
System.out.println(matcher.group());
}
}
}
public static void main(String[] args) {
List<String> ip = createCIp("113.10.245.23", "113.10.245.23");
for (int i = 0; i < ip.size(); i++) {
System.out.println(ip.get(i));
}
// get();
}
}