`
metaphy
  • 浏览: 338813 次
  • 性别: Icon_minigender_1
  • 来自: 大西洋底
社区版块
存档分类
最新评论

寻找可访问的随机网站(代码)

阅读更多
利用InetAddress.getAllByName(site)寻找随机网站。该方法,如果site可访问,则返回InetAddress[],否则将抛出UnknownHostException。程序一个明显的问题是效率不高,在无用的链接上浪费时间过多,平均每找到一个花时间2-5秒;这是很恐怖的。

package corejava.chapter.network;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Random;
import java.util.Vector;

/**
 * 随机搜寻可以访问的网址
 */
public class LookforWWWSite {
	private static Random r = new Random();
	private static final int WANTSITESCOUNT = 10;
	/**
	 * 随机生成指定长度字符的2、3级域名
	 * 
	 * @param bits
	 * @return
	 */
	private static String getPrename (int bits) {
		char[] chars = new char[bits];
		for (int i = 0; i < bits; i++) {
			chars[i] = (char) (r.nextInt(26) + 97);	//a~z
		}
		return "www." + new String(chars);
	}

	/**
	 * 网址生成规则,3级别域名+ 2级域名 + 1级域名 
	 * 3级域名:www 2级域名:3-5位字符组合
	 * 
	 * @param args
	 */

	public static void main(String[] args) {
		Vector<String> sites = new Vector<String>();
		String[] name1 = { ".com", ".net", ".org", ".cn" };
		System.out.println("Start at "+ Calendar.getInstance().getTime());
		long start = Calendar.getInstance().getTimeInMillis();
		while (true) {
			String prename = getPrename(3 + r.nextInt(3));	// 3~5
			for (String n1 : name1) {
				try {
					String site = prename + n1;
					InetAddress.getAllByName(site);
					if (!sites.contains(site)) {
						sites.add(site);
						if (sites.size() >= WANTSITESCOUNT)	break;
					}
				} catch (UnknownHostException e) {
				}
			}
			if (sites.size() >= WANTSITESCOUNT)	break;
		}
		long end = Calendar.getInstance().getTimeInMillis();
		System.out.println("Take time in millis : "+ (end - start)); 
		for (String site : sites)
			System.out.println(site);
	}
	
}


输出结果:
Start at Wed Mar 19 14:56:18 CST 2008
Take time in millis : 41672
www.nag.com
www.nag.net
www.nag.org
www.rdlz.com
www.rdlz.cn
www.ctm.com
www.ctm.net
www.ctm.org
www.ctm.cn
www.pqqz.com
分享到:
评论

相关推荐

    精易模块[源码] V5.15

    6、优化“文本_取随机数字”精简代码,提高执行效率,感谢易友[ds9660]反馈。 7、修正“普通填表-&gt;链接_点击”无法在本窗口中打开的BUG,感谢易友[@zhuan888]反馈。 8、修正“时间_时间戳转文本”代码不严谨出现数组...

    s4_7_caughtyaj_旅行商问题_dead5xi_s4代码_tsp_

    matab代码,采用遗传算法求解旅行商问题:随机生成城市群,寻找途径所有城市且只访问一次的最短路径

    Look1080 电影整合网站 v1.0

    根据发布的文章标题,自动拆分成词语(SEO必备杀招),并生成内链接(SEO增加网站内链),并写入SEO相关标题自动生成摘要:根据文章内容生成文章主要内容的摘要,并写进SEO相关标题自动生成预览图片:随机寻找主要...

    基于蚁群算法实现寻找最优路径matlab源码+项目说明+超详细注释.zip

    计算P(2,k)有问题,neighbor已经删除了不可访问节点,所以neighbor中节点的索引号和nodes_data{node_step, 4}索引号不是一一对应关系,应该先找到对应的索引号。 修正: ![修正1](./imgs/2.jpg) 实验 **信息素...

    C程序范例宝典(基础代码详解)

     本书既可作为C程序的初学者学习用书,也可作为程序开发人员、相关培训机构老师和学生的参考用书。 第1章 基础知识 1 1.1 进制转换 2 实例001 十进制转换为十六进制 2 实例002 十进制转换为二进制 3 实例...

    java范例开发大全源代码

     实例168 如何访问同名的方法或变量 268  实例169 super()方法的使用 271  实例170 this方法的使用 274  实例171 一张考试成绩单 275  实例172 银行自动存取一体机 278  9.4 多态 284  实例173 ...

    R语言经典实例(中+英)

     5.31 更便捷地访问数据框内容 152  5.32 基本数据类型之间的转换 154  5.33 不同结构化数据类型间的转换 156  第6章 数据转换 159  6.1 向量分组 160  6.2 将函数应用于每个列表元素 161  6.3 将函数应用于...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    11.7 随机访问文件 11.8 文件描述符输入/输出 11.9 文件访问权限 11.10 在c程序内部执行命令 11.11 在c程序内部使用管道 11.12 环境变量 11.13 c编译器 11.14 使用性能评估程序 11.15 函数库 11.16 对c代码进行计时 ...

    最新软件狗时间复制工具

    → 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它。 → 可在加密锁里的多个地址预先写入不同数据,校验锁时可以随机地对其中的某个地址进行校验。(如可随机产生一个数,再...

    角点检测代码matlab-TTK-4900-Master:机器学习以识别海洋模型和遥感数据中的特征

    角点检测代码matlab TTK-4900-大师 TTK4900-工程控制论,硕士学位论文 报告摘要 由于无法预测的非线性和对物理观测的访问有限,因此使用数值模型预测海洋动力学具有挑战性。 海洋涡旋对理论和模型提出了复杂的概念和...

    Python Cookbook

    16.11 自动化py2exe将脚本编译成Windows可执行文件的过程 585 16.12 在UNIX中将主脚本和模块绑成一个可执行文件 587 第17章 扩展和嵌入 590 引言 590 17.1 实现一个简单的扩展类型 592 17.2 用Pyrex实现一个...

    pad-data-pipeline:原始回购

    跳过其余内容,并在utils目录中查找脚本,这些脚本可让您访问导出,包括原始数据和已处理的数据库。这里有什么docker :在docker中更轻松的开发设置。 etl :包含最重要的内容,下载,解析和处理PAD游戏数据。 ...

    《你必须知道的495个C语言问题》

    4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unaligned access”(未对齐的访问)的信息。这是什么意思? 47 作为函数参数的指针 47 4.8 我有个函数,它应该接受并初始化一个指针:void f(int *ip)...

    去做就对了「Just Do It」-crx插件

    **版本0.1.9 **-通过Travis-CI添加了自动构建和部署-源代码可从下面的GitHub链接获得**版本0.1.0 **-Just Do It的初始版本有关旧版本的信息,请访问以下链接:https://github.com/hunterparks/JustDoIt 支持语言:...

    易语言 茶凉专用模块

    参数 随机渐变, 逻辑型, 可空, 不选不随机颜色 .参数 字体抖动, 逻辑型, 可空 .子程序 查看字节集1, 文本型, 公开, 以易语言文本方式查看字节集,返回文本内容 如:{ 102, 204, 14, 5 } .参数 字节集, 字节集, , 欲...

    学习opencv中文版

    OpenCV入门必备 图书目录: 第1章 概述 什么是OpenCV OpenCV的应用领域 什么是计算机视觉 OpenCV的起源 下载和安装OpenCV 通过SVN获取最新的OpenCV代码 更多OpenCV文档 OpenCV的结构和内容 移植性 练习 第2章 OpenCV...

    CuteFTP9简易汉化版

    一种上传软件的维持功能与竞争对手的不同之处在于,它提供了完全可定制的维持选项,包括时间开始发送命令,命令之间的随机时间间隔,可定制的命令列表,自动重拨选项。 多个Connections-Connect,浏览和导航多个站点同时...

    你必须知道的495个C语言问题

    4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unalignedaccess”(未对齐的访问)的信息。这是什么意思? 作为函数参数的指针 4.8 我有个函数,它应该接受并初始化一个指针:voidf(int*ip){...

    Discuz 2.5 最新版

    访问量大的网站可以考虑关闭session机制,增强系统抗压性能。 淘贴 为了更好的挖掘站点内容,形成历史沉淀,增强可阅读性,新增淘贴功能。通过此功能,可以借助会员的力量,让论坛的好帖子得到更好的整理与展现,让...

Global site tag (gtag.js) - Google Analytics