├── .gitignore
├── CONTRIBUTING.md
├── README.md
├── sample-apps
├── .gitignore
├── pom.xml
├── src
│ └── main
│ │ ├── java
│ │ └── io
│ │ │ └── parallec
│ │ │ └── sample
│ │ │ └── app
│ │ │ ├── http
│ │ │ ├── Http100WebAggregateToElasticSearchApp.java
│ │ │ ├── Http100WebAggregateToKafkaApp.java
│ │ │ ├── Http3WebAgrregateToElasticSearchMinApp.java
│ │ │ ├── HttpAsyncApiPollableJob.java
│ │ │ ├── HttpBasicAsyncRunProgressPollingApp.java
│ │ │ ├── HttpBasicMinimumApp.java
│ │ │ ├── HttpDiffRequestsDiffServersApp.java
│ │ │ ├── HttpDiffRequestsSameServerApp.java
│ │ │ ├── package-info.java
│ │ │ ├── samplekafkareceiver
│ │ │ │ ├── KafkaReceiver.java
│ │ │ │ └── package-info.java
│ │ │ └── sampleserver
│ │ │ │ ├── HttpServerSampleAsyncApiWithPollableJob.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── ping
│ │ │ ├── Ping100WebApp.java
│ │ │ └── package-info.java
│ │ │ ├── ssh
│ │ │ ├── SshApp.java
│ │ │ └── package-info.java
│ │ │ └── tcp
│ │ │ ├── TcpApp.java
│ │ │ ├── package-info.java
│ │ │ └── sampleserver
│ │ │ ├── TcpEchoServer.java
│ │ │ └── package-info.java
│ │ └── resources
│ │ └── logback.xml
└── userdata
│ ├── keepthisfile
│ ├── sample_target_hosts_json_path.json
│ ├── sample_target_hosts_top100.txt
│ ├── sample_target_hosts_top1000.txt
│ ├── sample_target_hosts_top100_old.txt
│ ├── sample_target_hosts_top2000.txt
│ ├── sample_target_hosts_top500.txt
│ └── sample_target_hosts_top500_old.txt
└── sample-spark-server
├── .gitignore
├── pom.xml
├── src
└── main
│ └── java
│ └── io
│ └── parallec
│ └── ebay
│ └── server
│ └── ParallecSparkServer.java
└── userdata
└── keepthisfile
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Mobile Tools for Java (J2ME)
4 | .mtj.tmp/
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | application.log*
12 |
13 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
14 | hs_err_pid*
15 | /target/
16 |
17 | .DS_Store
18 |
19 | #elastic data
20 | data/
21 |
22 | #parallec log
23 | parallec_logs/*
24 | !parallec_logs/keepthisfile
25 |
26 | #user data
27 | userdata/*
28 | !userdata/keepthisfile
29 |
30 | !userdata/tasklogs
31 | userdata/tasklogs/*
32 | !userdata/tasklogs/keepthisfile
33 | !userdata/sample_target*
34 | *.jks
35 | *.pem
36 |
37 | #mkdown
38 | .*.md.html
39 |
40 | /.settings/
41 | .classpath
42 | .project
43 | /bin/
44 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Contributing to Eagle
2 |
3 | Contributions via GitHub pull requests are gladly accepted from their original
4 | author. Along with any pull requests, please state that the contribution is
5 | your original work and that you license the work to the project under the
6 | project's open source license. Whether or not you state this explicitly, by
7 | submitting any copyrighted material via pull request, email, or other means
8 | you agree to license the material under the project's open source license and
9 | warrant that you have the legal authority to do so.
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [Sample Applications](#sample-apps)
4 | - [Sample Spark Server](#sample-spark-server)
5 |
6 | ##Parallec Sample Applications
7 | ------
8 | Sample Applications demonstrate how to use [parallec.io](http://www.parallec.io) library, such as aggregate APIs and publish to Elastic Search and Kafka.
9 |
10 | Each file is independent with a main function and can be run directly. (TCP/HTTP Async API requires the sample HTTP/TCP servers to start in advance. Sample servers included here are independent executable files too).
11 |
12 | **More comprehensive examples** are available in the [test cases](https://github.com/eBay/parallec/tree/master/src/test/java/io/parallec/core). Such as cancel tasks. Capacity aware scheduler and etc.
13 |
14 | | Sample App Location | Overview |
15 | |:-------------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
16 | | [HTTP](https://github.com/eBay/parallec-samples/tree/master/sample-apps/src/main/java/io/parallec/sample/app/http) | Basic Http. Handle Async APIs with auto progress polling. Asyn run Parallel Task with progress polling. Result aggregation. Provided a sample HttpServer will async job submission/polling API to test with. Send to elastic search. Request template with variable replacements. |
17 | | [SSH](https://github.com/eBay/parallec-samples/tree/master/sample-apps/src/main/java/io/parallec/sample/app/ssh) | Sample Parallel SSH. Need to input the userName, ip, then [password / keyfile path]. Tested with EC2 instance in AWS. |
18 | | [PING](https://github.com/eBay/parallec-samples/tree/master/sample-apps/src/main/java/io/parallec/sample/app/ping) | Sample Parallel Ping App. |
19 | | [TCP](https://github.com/eBay/parallec-samples/tree/master/sample-apps/src/main/java/io/parallec/sample/app/tcp) | Sample Parallel TCP app. Includes a sample [TCP Echo Server](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/tcp/sampleserver/TcpEchoServer.java) to test with. |
20 |
21 | ####HTTP
22 | - Basic [HttpBasicMinimumApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/HttpBasicMinimumApp.java): 10 lines minimum example of hitting 3 websites.
23 |
24 | - Async [HttpBasicAsyncRunProgressPollingApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/HttpBasicAsyncRunProgressPollingApp.java): Use **async mode** to run a parallel task, and then **poll the progress** and show an aggregation on status code.
25 |
26 | - Aggregate to **Elastic Search** [Http100WebAggregateToElasticSearchApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/Http100WebAggregateToElasticSearchApp.java): Hitting 100 common websites to get these status code to elastic search, and visualized in Kibana in 20 lines. Usage of response context to pass elastic search client [demo video](https://www.youtube.com/watch?v=QcavegPMDms)
27 |
28 | - Aggregate to **Kafka** [Http100WebAggregateToKafkaApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/Http100WebAggregateToKafkaApp.java): Hitting 100 common websites to get these status code to kafka. Usage of response context to pass kafka client. You may use the included Kafka Receiver to validated. Check pom.xml to see which version of kafka we use. Simple fork this and change HOSTNAME to point to your kafka server to work. Have tested with our kafka server and receiver.
29 |
30 | - Filter Response with Regular Expression [Http3WebAgrregateToElasticSearchMinApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/Http3WebAgrregateToElasticSearchMinApp.java): Usage of FilterRegex.
31 |
32 | - **Request Template** [HttpDiffRequestsDiffServersApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/HttpDiffRequestsDiffServersApp.java): Different requests to different target URLs. Request template.
33 | - Request Template [HttpDiffRequestsSameServerApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/HttpDiffRequestsSameServerApp.java): Different requests to same target server. Request template. setReplaceVarMapToSingleTargetSingleVar().
34 |
35 | - **Auto Progress Polling and Async APIs** [HttpAsyncApiPollableJob.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/HttpAsyncApiPollableJob.java): demos to handle async APIs with auto progress polling. Task level concurrency control. (require starts the [Sample Web Server with Async API](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/sampleserver/HttpServerSampleAsyncApiWithPollableJob.java) first)
36 |
37 | ####Set Target Hosts
38 | Please refer to the documentation to set target hosts differently.
39 |
40 | ###Usage
41 |
42 | You may simple fork the project, or copy and paste indivisual files after getting the correct dependencies
43 |
44 | Maven
45 |
46 | ```xml
47 |
48 | io.parallec
49 | parallec-core
50 | 0.9.3
51 |
52 | ```
53 |
54 | Gradle
55 |
56 | ```xml
57 | compile 'io.parallec:parallec-core:0.9.3'
58 | ```
59 |
60 |
61 | #####Screenshots
62 |
63 | Executing [Http3WebAgrregateToElasticSearchMinApp.java](https://github.com/eBay/parallec-samples/blob/master/sample-apps/src/main/java/io/parallec/sample/app/http/Http3WebAgrregateToElasticSearchMinApp.java), visualized in Kibana.
64 |
65 | With elasticsearch-1.3.4 and kibana-3.1.2
66 |
67 | 
68 |
69 |
70 | ##[Sample Spark Server](https://github.com/eBay/parallec-samples/blob/master/sample-spark-server/src/main/java/io/parallec/ebay/server/ParallecSparkServer.java)
71 |
72 | ------
73 | Sample [Single File](https://github.com/eBay/parallec-samples/blob/master/sample-spark-server/src/main/java/io/parallec/ebay/server/ParallecSparkServer.java) Web Server in Spark with Parallec . Require JDK 1.8+ due to Spark server.
74 |
75 | - SparkServer: http://sparkjava.com
76 |
77 | ####Build & Run
78 | ######Build:
79 |
80 | Fork the project and run:
81 |
82 | mvn clean compile assembly:single
83 |
84 | ######Run:
85 | In folder: parallec-samples/sample-spark-server/target: (if not conduct ping, no need of sudo)
86 |
87 | sudo java -jar parallec-sample-spark-server-0.9.0-jar-with-dependencies.jar
88 |
89 |
90 | #### Server APIs
91 |
92 | The APIs tries to get target hosts from a local file in the same path.
93 |
94 | ```
95 | get("/http/:filename"
96 | get("/ssh/:filename/:concurrency/:showDetail"
97 | ```
98 |
99 | targetHostFile location:
100 |
101 | - If in IDE, put into the same folder as the pom.xml.
102 | - If run as jar. just same folder as the executable jar file.
103 |
104 | APIs:
105 |
106 | - localhost:4567/ssh/targetHostFile/200/true (require update login user/password)
107 | - localhost:4567/ping/targetHostFile ; need root
108 | - localhost:4567/http/targetHostFile : use elastic search
109 |
110 | ######Sample Output
111 |
112 | http://localhost:4567/http/targetHostFile
113 |
114 |
115 |
116 | ```
117 | Parallec: completed HTTP and sent to elastic search
118 | :3 Servers in 0.575 seconds. Results: Results: [200 OK COUNT: 3 ]:
119 | www.parallec.io
120 | www.jeffpei.com
121 | www.ebay.com
122 | ###################################
123 |
124 | At 2015.11.01.10.15.47.398-0800
125 | ```
126 |
127 | Thanks for trying Parallec.io. Please submit a git issue for any questions you have.
128 |
129 | ## Author and Contributors
130 | #### Original Author
131 | Yuanteng (Jeff) Pei
132 |
133 | #### Contributors
134 |
135 | Your name here
136 |
137 | ## Licenses
138 |
139 | Code licensed under Apache License v2.0
140 |
141 | © 2015 eBay Software Foundation
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/sample-apps/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Mobile Tools for Java (J2ME)
4 | .mtj.tmp/
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | application.log*
12 |
13 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
14 | hs_err_pid*
15 | /target/
16 |
17 | .DS_Store
18 |
19 | #elastic data
20 | data/
21 |
22 | #parallec log
23 | parallec_logs/*
24 | !parallec_logs/keepthisfile
25 |
26 | #user data
27 | userdata/*
28 | !userdata/keepthisfile
29 |
30 | !userdata/tasklogs
31 | userdata/tasklogs/*
32 | !userdata/tasklogs/keepthisfile
33 | !userdata/sample_target*
34 | *.jks
35 | *.pem
36 |
37 | #mkdown
38 | .*.md.html
39 |
40 | /.settings/
41 | .classpath
42 | .project
43 | /bin/
44 |
--------------------------------------------------------------------------------
/sample-apps/pom.xml:
--------------------------------------------------------------------------------
1 |
3 | 4.0.0
4 | io.parallec
5 | io.parallec.sample-applications
6 | 0.9.0
7 |
8 |
9 | 1.7.12
10 | 1.1.3
11 |
12 |
13 |
14 | io.parallec
15 | parallec-core
16 | 0.9.2
17 |
18 |
19 |
20 | org.apache.kafka
21 | kafka_2.10
22 | 0.8.2.1
23 |
24 |
25 |
26 | org.elasticsearch
27 | elasticsearch
28 | 1.3.4
29 |
30 |
31 |
32 | org.codehaus.groovy
33 | groovy-all
34 | 2.3.2
35 | test
36 |
37 |
38 | org.apache.lucene
39 | lucene-expressions
40 | 4.10.2
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | org.apache.maven.plugins
52 | maven-compiler-plugin
53 |
54 | 1.7
55 | 1.7
56 |
57 |
58 |
59 |
60 |
61 |
62 | eBay
63 | www.ebay.com
64 |
65 |
66 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/Http100WebAggregateToElasticSearchApp.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.http;
2 |
3 | import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
4 | import io.parallec.core.HostsSourceType;
5 | import io.parallec.core.ParallecResponseHandler;
6 | import io.parallec.core.ParallelClient;
7 | import io.parallec.core.ResponseOnSingleTask;
8 | import io.parallec.core.util.PcDateUtils;
9 |
10 | import java.util.HashMap;
11 | import java.util.Map;
12 |
13 | import org.elasticsearch.client.Client;
14 |
15 | /**
16 | * Sample results visualized in Kibana as in:
17 | *
18 | * http://www.parallec.io/images/screenshots/elastic-aggre-web100.png
19 | *
20 | * Assuming local elasticsearch-1.3.4 + kibana-3.1.2 running with default basic setup.
21 | *
22 | * Hitting 100 common websites to get these status code and visualized in Kibana
23 | *
24 | * if need to load target hosts from local
25 | * .setTargetHostsFromLineByLineText("userdata/sample_target_hosts_top100_old.txt",
26 | * HostsSourceType.LOCAL_FILE)
27 | *
28 | * @author Yuanteng (Jeff) Pei
29 | */
30 | public class Http100WebAggregateToElasticSearchApp {
31 |
32 | public static void main(String[] args) {
33 | ParallelClient pc = new ParallelClient();
34 | org.elasticsearch.node.Node node = nodeBuilder().node(); //elastic client initialize
35 | HashMap responseContext = new HashMap();
36 | responseContext.put("Client", node.client());
37 | pc.prepareHttpGet("")
38 | .setConcurrency(1000)
39 | .setTargetHostsFromLineByLineText("http://www.parallec.io/userdata/sample_target_hosts_top100_old.txt",
40 | HostsSourceType.URL)
41 | .setResponseContext(responseContext)
42 | .execute( new ParallecResponseHandler() {
43 | public void onCompleted(ResponseOnSingleTask res,
44 | Map responseContext) {
45 | Map metricMap = new HashMap();
46 | metricMap.put("StatusCode", res.getStatusCode().replaceAll(" ", "_"));
47 | metricMap.put("LastUpdated",PcDateUtils.getNowDateTimeStrStandard());
48 | metricMap.put("NodeGroupType", "Web100");
49 | Client client = (Client) responseContext.get("Client");
50 | client.prepareIndex("local", "parallec", res.getHost()).setSource(metricMap).execute();
51 | }
52 | });
53 | node.close(); pc.releaseExternalResources();
54 | }
55 |
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/Http100WebAggregateToKafkaApp.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.http;
2 |
3 | import io.parallec.core.HostsSourceType;
4 | import io.parallec.core.ParallecResponseHandler;
5 | import io.parallec.core.ParallelClient;
6 | import io.parallec.core.ResponseOnSingleTask;
7 | import io.parallec.core.util.PcDateUtils;
8 | import io.parallec.core.util.PcStringUtils;
9 |
10 | import java.util.HashMap;
11 | import java.util.Map;
12 | import java.util.Properties;
13 |
14 | import org.apache.kafka.clients.producer.KafkaProducer;
15 | import org.apache.kafka.clients.producer.ProducerConfig;
16 | import org.apache.kafka.clients.producer.ProducerRecord;
17 | import org.apache.kafka.common.serialization.StringSerializer;
18 |
19 | /**
20 | * check POM to see which kafka version we use.
21 | *
22 | * Tested with the sample kafka receiver
23 | *
24 | * replace HOSTNAME before usage
25 | *
26 | * Hitting 100 common websites to get these status code and send to Kafka.
27 | *
28 | * Start the io.parallec.sample.app.http.samplekafkareceiver: KafkaReceiver to validate if this works.
29 | *
30 | * if need to load target hosts from local .setTargetHostsFromLineByLineText(
31 | * "userdata/sample_target_hosts_top100_old.txt", HostsSourceType.LOCAL_FILE)
32 | *
33 | * @author Yuanteng (Jeff) Pei
34 | */
35 | public class Http100WebAggregateToKafkaApp {
36 |
37 | public static String serverUrl = "HOSTNAME:9092";
38 |
39 | public static KafkaProducer generateProducer(String serverUrl) {
40 | KafkaProducer producerKafka = null;
41 | Properties props = new Properties();
42 | props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, serverUrl);
43 | props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
44 | StringSerializer.class.getName());
45 | props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
46 | StringSerializer.class.getName());
47 | producerKafka = new KafkaProducer(props);
48 | return producerKafka;
49 | }
50 |
51 | public static void main(String[] args) {
52 | ParallelClient pc = new ParallelClient();
53 |
54 | KafkaProducer producerKafka = generateProducer(serverUrl);// kafka
55 | // client
56 | // initialize
57 | HashMap responseContext = new HashMap();
58 | responseContext.put("producerKafka", producerKafka);
59 | pc.prepareHttpGet("")
60 | .setConcurrency(1000)
61 | .setTargetHostsFromLineByLineText(
62 | "http://www.parallec.io/userdata/sample_target_hosts_top100_old.txt",
63 | HostsSourceType.URL)
64 | .setResponseContext(responseContext)
65 | .execute(new ParallecResponseHandler() {
66 | public void onCompleted(ResponseOnSingleTask res,
67 | Map responseContext) {
68 | Map metricMap = new HashMap();
69 | metricMap.put("StatusCode", res.getStatusCode()
70 | .replaceAll(" ", "_"));
71 | metricMap.put("LastUpdated",
72 | PcDateUtils.getNowDateTimeStrStandard());
73 | metricMap.put("HostName", res.getHost());
74 | metricMap.put("NodeGroupType", "Web100");
75 | String topic = "parallec-topic";
76 | @SuppressWarnings("unchecked")
77 | KafkaProducer producerKafka = (KafkaProducer) responseContext.get("producerKafka");
78 | ProducerRecord producerRecord = new ProducerRecord(
79 | topic, res.getHost(), PcStringUtils.renderJson(metricMap));
80 | producerKafka.send(producerRecord);
81 | }
82 | });
83 | producerKafka.close();
84 | pc.releaseExternalResources();
85 | }
86 |
87 | }
88 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/Http3WebAgrregateToElasticSearchMinApp.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.http;
2 |
3 | import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
4 | import io.parallec.core.FilterRegex;
5 | import io.parallec.core.ParallecResponseHandler;
6 | import io.parallec.core.ParallelClient;
7 | import io.parallec.core.ResponseOnSingleTask;
8 | import io.parallec.core.util.PcDateUtils;
9 |
10 | import java.util.HashMap;
11 | import java.util.Map;
12 |
13 | import org.elasticsearch.client.Client;
14 |
15 | /**
16 | * Sample results visualized in Kibana as in:
17 | * http://www.parallec.io/images/screenshots/elastic-aggre-web3.png
18 | *
19 | * Assuming local elasticsearch-1.3.4 + kibana-3.1.2 running with default basic setup.
20 | *
21 | * hitting
22 | * http://www.parallec.io/validateInternals.html
23 | * http://www.jeffpei.com/validateInternals.html
24 | * http://www.restcommander.com/validateInternals.html
25 | *
26 | * @author Yuanteng (Jeff) Pei
27 | */
28 | public class Http3WebAgrregateToElasticSearchMinApp {
29 |
30 |
31 | public static void main(String[] args) {
32 |
33 | ParallelClient pc = new ParallelClient();
34 | org.elasticsearch.node.Node node = nodeBuilder().node(); //elastic client initialize
35 | HashMap responseContext = new HashMap();
36 | responseContext.put("Client", node.client());
37 |
38 | pc.prepareHttpGet("/validateInternals.html")
39 | .setTargetHostsFromString("www.parallec.io www.jeffpei.com www.restcommander.com")
40 | .setResponseContext(responseContext)
41 | .execute( new ParallecResponseHandler() {
42 | public void onCompleted(ResponseOnSingleTask res,
43 | Map responseContext) {
44 | String cpu = new FilterRegex(".*CPU-Usage-Percent | \\s*(.*?) | [\\s\\S]*")
45 | .filter(res.getResponseContent());
46 | String memory = new FilterRegex(".*Memory-Used-KB | \\s*(.*?) | [\\s\\S]*")
47 | .filter(res.getResponseContent());
48 | Map metricMap = new HashMap();
49 | metricMap.put("CpuUsage", cpu); metricMap.put("MemoryUsage", memory);
50 | metricMap.put("LastUpdated",PcDateUtils.getNowDateTimeStrStandard());
51 | metricMap.put("NodeGroupType", "Web3");
52 | System.out.println("cpu:" + cpu + " host: " + res.getHost() );
53 | Client client = (Client) responseContext.get("Client");
54 | client.prepareIndex("local", "parallec", res.getHost()).setSource(metricMap).execute();
55 | }
56 | });
57 | node.close(); pc.releaseExternalResources();
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/HttpAsyncApiPollableJob.java:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright [2013-2015] eBay Software Foundation
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 | http://www.apache.org/licenses/LICENSE-2.0
7 | Unless required by applicable law or agreed to in writing, software
8 | distributed under the License is distributed on an "AS IS" BASIS,
9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | See the License for the specific language governing permissions and
11 | limitations under the License.
12 | */
13 | package io.parallec.sample.app.http;
14 |
15 | import io.parallec.core.ParallecHeader;
16 | import io.parallec.core.ParallecResponseHandler;
17 | import io.parallec.core.ParallelClient;
18 | import io.parallec.core.ParallelTask;
19 | import io.parallec.core.ResponseOnSingleTask;
20 | import io.parallec.core.actor.poll.HttpPollerProcessor;
21 |
22 | import java.util.Map;
23 |
24 | /**
25 | * The Class HttpAsyncApiPoll.
26 | * To demonstrate the Async HTTP Server
27 | * Procedure:
28 | *
29 | * 1. Start Sample HTTP server: in HttpServerSampleAsyncApiWithPollableJob first (just java run application)
30 | * 2. Run this as a java application.
31 | *
32 | * You will need to define a
33 | *
34 | */
35 | public class HttpAsyncApiPollableJob {
36 |
37 | /**
38 | * Generate sample http poller.
39 | *
40 | * @return the http poller processor
41 | */
42 | public static HttpPollerProcessor generateSampleHttpPoller() {
43 |
44 | // Init the poller
45 | String pollerType = "CronusAgentPoller";
46 | String successRegex = ".*\"progress\"\\s*:\\s*(100).*}";
47 | String failureRegex = ".*\"error\"\\s*:\\s*(.*).*}";
48 | String jobIdRegex = ".*\"/status/(.*?)\".*";
49 | String progressRegex = ".*\"progress\"\\s*:\\s*([0-9]*).*}";
50 | int progressStuckTimeoutSeconds = 600;
51 | int maxPollError = 5;
52 | long pollIntervalMillis = 2000L;
53 | String jobIdPlaceHolder = "$JOB_ID";
54 | String pollerRequestTemplate = "/status/" + jobIdPlaceHolder;
55 |
56 | HttpPollerProcessor httpPollerProcessor = new HttpPollerProcessor(
57 | pollerType, successRegex, failureRegex, jobIdRegex,
58 | progressRegex, progressStuckTimeoutSeconds, pollIntervalMillis,
59 | pollerRequestTemplate, jobIdPlaceHolder, maxPollError);
60 |
61 | return httpPollerProcessor;
62 | }
63 |
64 | /**
65 | * The main method.
66 | *
67 | * @param args the arguments
68 | */
69 | public static void main(String [] args) {
70 |
71 | HttpPollerProcessor httpPollerProcessor = generateSampleHttpPoller();
72 |
73 | ParallelClient pc = new ParallelClient();
74 |
75 | ParallelTask task = pc
76 | .prepareHttpPost("/submitJob")
77 | .setHttpHeaders(
78 | new ParallecHeader().addPair("authorization",
79 | "SAMPLE_AUTH_KEY"))
80 | .setHttpPort(10080).setConcurrency(1500)
81 | .setTargetHostsFromString("localhost").setHttpPollable(true)
82 | .setHttpPollerProcessor(httpPollerProcessor)
83 | .execute(new ParallecResponseHandler() {
84 | @Override
85 | public void onCompleted(ResponseOnSingleTask res,
86 | Map responseContext) {
87 | System.out.println("getPollingHistory:"
88 | + res.getPollingHistory() + " host: "
89 | + res.getHost());
90 | System.out.println(res.toString());
91 | }
92 | });
93 | System.out.println("Task Pretty Print: \n " + task.prettyPrintInfo());
94 | pc.releaseExternalResources();
95 | }
96 |
97 | }
98 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/HttpBasicAsyncRunProgressPollingApp.java:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright [2013-2015] eBay Software Foundation
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 | http://www.apache.org/licenses/LICENSE-2.0
7 | Unless required by applicable law or agreed to in writing, software
8 | distributed under the License is distributed on an "AS IS" BASIS,
9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | See the License for the specific language governing permissions and
11 | limitations under the License.
12 | */
13 | package io.parallec.sample.app.http;
14 |
15 | import io.parallec.core.HostsSourceType;
16 | import io.parallec.core.ParallecResponseHandler;
17 | import io.parallec.core.ParallelClient;
18 | import io.parallec.core.ParallelTask;
19 | import io.parallec.core.ResponseOnSingleTask;
20 | import io.parallec.core.util.PcStringUtils;
21 |
22 | import java.util.Map;
23 |
24 | /**
25 | * The app that use async mode to run a parallel task, and then poll the progress
26 | * and show an aggregation
27 | */
28 | public class HttpBasicAsyncRunProgressPollingApp {
29 |
30 | /**
31 | * The main method.
32 | *
33 | * @param args the arguments
34 | */
35 | public static void main(String[] args) {
36 |
37 | ParallelClient pc = new ParallelClient();
38 |
39 | ParallelTask task = pc.prepareHttpGet("").async()
40 | .setConcurrency(500)
41 | .setTargetHostsFromLineByLineText("http://www.parallec.io/userdata/sample_target_hosts_top100_old.txt",
42 | HostsSourceType.URL)
43 | .execute(new ParallecResponseHandler() {
44 | public void onCompleted(ResponseOnSingleTask res,
45 | Map responseContext) {
46 | System.out.println("Responose Code:"
47 | + res.getStatusCode() + " host: "
48 | + res.getHost());
49 | }
50 | });
51 |
52 | while (!task.isCompleted()) {
53 | try {
54 | Thread.sleep(100L);
55 | System.err.println(String.format(
56 | "POLL_JOB_PROGRESS (%.5g%%) PT jobid: %s",
57 | task.getProgress(), task.getTaskId()));
58 | pc.logHealth();
59 | } catch (InterruptedException e) {
60 | e.printStackTrace();
61 | }
62 | }
63 |
64 | System.out
65 | .println("Result Summary\n "
66 | + PcStringUtils.renderJson(task
67 | .getAggregateResultFullSummary()));
68 |
69 | System.out
70 | .println("Result Brief Summary\n "
71 | + PcStringUtils.renderJson(task
72 | .getAggregateResultCountSummary()));
73 | pc.releaseExternalResources();
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/HttpBasicMinimumApp.java:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright [2013-2015] eBay Software Foundation
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 | http://www.apache.org/licenses/LICENSE-2.0
7 | Unless required by applicable law or agreed to in writing, software
8 | distributed under the License is distributed on an "AS IS" BASIS,
9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | See the License for the specific language governing permissions and
11 | limitations under the License.
12 | */
13 | package io.parallec.sample.app.http;
14 |
15 | import io.parallec.core.ParallecResponseHandler;
16 | import io.parallec.core.ParallelClient;
17 | import io.parallec.core.ResponseOnSingleTask;
18 |
19 | import java.util.Map;
20 |
21 | /**
22 | * The Class HttpBasicMinimumApp.
23 | * With basic response handling.
24 | * Does not use response context
25 | */
26 | public class HttpBasicMinimumApp {
27 |
28 | /**
29 | * The main method.
30 | *
31 | * @param args the arguments
32 | */
33 | public static void main(String[] args) {
34 |
35 | ParallelClient pc = new ParallelClient();
36 | pc.prepareHttpGet("")
37 | .setConcurrency(1000)
38 | .setTargetHostsFromString(
39 | "www.parallec.io www.jeffpei.com www.restcommander.com")
40 | .execute(new ParallecResponseHandler() {
41 | public void onCompleted(ResponseOnSingleTask res,
42 | Map responseContext) {
43 | System.out.println(res.getResponseContent());
44 | }
45 | });
46 | pc.releaseExternalResources();
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/HttpDiffRequestsDiffServersApp.java:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright [2013-2015] eBay Software Foundation
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 | http://www.apache.org/licenses/LICENSE-2.0
7 | Unless required by applicable law or agreed to in writing, software
8 | distributed under the License is distributed on an "AS IS" BASIS,
9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | See the License for the specific language governing permissions and
11 | limitations under the License.
12 | */
13 | package io.parallec.sample.app.http;
14 |
15 | import io.parallec.core.FilterRegex;
16 | import io.parallec.core.ParallecResponseHandler;
17 | import io.parallec.core.ParallelClient;
18 | import io.parallec.core.ResponseOnSingleTask;
19 | import io.parallec.core.bean.StrStrMap;
20 |
21 | import java.util.HashMap;
22 | import java.util.Map;
23 |
24 |
25 | /**
26 | * Different requests to different target URLs.
27 | * Extract out the progress with 3 different APIs
28 | * http://www.parallec.io/job_a.html
29 | * http://www.jeffpei.com/job_b.html
30 | * http://www.restsuperman.com/job_c.html
31 | *
32 | */
33 | public class HttpDiffRequestsDiffServersApp {
34 |
35 | /**
36 | * @param args
37 | * the arguments
38 | */
39 | public static void main(String[] args) {
40 |
41 | ParallelClient pc = new ParallelClient();
42 | Map replacementVarMapNodeSpecific = new HashMap();
43 | replacementVarMapNodeSpecific.put("www.parallec.io",
44 | new StrStrMap().addPair("JOB_ID", "job_a"));
45 | replacementVarMapNodeSpecific.put("www.jeffpei.com",
46 | new StrStrMap().addPair("JOB_ID", "job_b"));
47 | replacementVarMapNodeSpecific.put("www.restcommander.com",
48 | new StrStrMap().addPair("JOB_ID", "job_c"));
49 |
50 | pc.prepareHttpGet("/$JOB_ID.html")
51 | .setTargetHostsFromString(
52 | "www.parallec.io www.jeffpei.com www.restcommander.com")
53 | .setReplacementVarMapNodeSpecific(replacementVarMapNodeSpecific)
54 | .execute(new ParallecResponseHandler() {
55 | public void onCompleted(ResponseOnSingleTask res,
56 | Map responseContext) {
57 | String extractedString = new FilterRegex(
58 | ".*JobProgress | \\s*(.*?) | .*")
59 | .filter(res.getResponseContent());
60 | System.out.println("[Extracted String]: progress:"
61 | + extractedString + " host: " + res.getHost());
62 | //System.out.println(res.toString());
63 | }
64 | });
65 |
66 | pc.releaseExternalResources();
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/HttpDiffRequestsSameServerApp.java:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright [2013-2015] eBay Software Foundation
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 | http://www.apache.org/licenses/LICENSE-2.0
7 | Unless required by applicable law or agreed to in writing, software
8 | distributed under the License is distributed on an "AS IS" BASIS,
9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | See the License for the specific language governing permissions and
11 | limitations under the License.
12 | */
13 | package io.parallec.sample.app.http;
14 |
15 | import io.parallec.core.FilterRegex;
16 | import io.parallec.core.ParallecResponseHandler;
17 | import io.parallec.core.ParallelClient;
18 | import io.parallec.core.ResponseOnSingleTask;
19 |
20 | import java.util.Arrays;
21 | import java.util.HashMap;
22 | import java.util.Map;
23 |
24 | import org.apache.http.util.Asserts;
25 |
26 | /**
27 | *
28 | * Example of sending Different requests to same target server. note that the target host must
29 | * match the key: e.g. hitting
30 | * http://www.parallec.io/userdata/sample_weather_48824.txt
31 | * http://www.parallec.io/userdata/sample_weather_95037.txt
32 | *
33 | * You may fire thousands of APIs to the same server in this way.
34 | *
35 | * This is the easiest way to conduct variable replacement (only 1 variable)
36 | * more complex examples are in the test cases:
37 | * https://github.com/eBay/parallec/blob/master/src/test/java/io/parallec/core/
38 | * main/http/request/template/ParallelClientVarReplacementHostSpecificTest.java
39 | *
40 | */
41 | public class HttpDiffRequestsSameServerApp {
42 |
43 | public static void main(String[] args) {
44 |
45 | ParallelClient pc = new ParallelClient();
46 |
47 | Map responseContext = new HashMap();
48 | responseContext.put("temp", null);
49 |
50 | pc.prepareHttpGet("/userdata/sample_weather_$ZIP.txt")
51 | .setReplaceVarMapToSingleTargetSingleVar("ZIP",
52 | Arrays.asList("95037","48824"), "www.parallec.io")
53 | .setResponseContext(responseContext)
54 | .execute(new ParallecResponseHandler() {
55 | public void onCompleted(ResponseOnSingleTask res,
56 | Map responseContext) {
57 | String temp = new FilterRegex("(.*)").filter(res
58 | .getResponseContent());
59 | System.out.println("\n!!Temperature: " + temp
60 | + " TargetHost: " + res.getHost());
61 | responseContext.put("temp", temp);
62 | }
63 | });
64 |
65 | int tempGlobal = Integer.parseInt((String) responseContext.get("temp"));
66 | Asserts.check(
67 | tempGlobal <= 100 && tempGlobal >= 0,
68 | " Fail to extract output from sample weather API. Fail different request to same server test");
69 |
70 | pc.releaseExternalResources();
71 |
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Yuanteng (Jeff) Pei
6 | *
7 | */
8 | package io.parallec.sample.app.http;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/samplekafkareceiver/KafkaReceiver.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.http.samplekafkareceiver;
2 |
3 |
4 | import java.util.HashMap;
5 | import java.util.List;
6 | import java.util.Map;
7 | import java.util.Properties;
8 |
9 | import kafka.consumer.Consumer;
10 | import kafka.consumer.ConsumerIterator;
11 | import kafka.consumer.KafkaStream;
12 | import kafka.javaapi.consumer.ConsumerConnector;
13 |
14 | /**
15 | *
16 | * Simple Kafka receiver to validate Parallec kafka producer logic.
17 | * tested. replace HOSTNAME before use.
18 | *
19 | * Check pom for the kafka version.
20 | *
21 | * http://kafka.apache.org/documentation.html
22 | * @author Yuanteng (Jeff) Pei
23 | *
24 | */
25 | public class KafkaReceiver {
26 |
27 | public static void main(String args[]) {
28 |
29 | Properties props = new Properties();
30 | props.put("zookeeper.connect", "HOSTNAME:2181");
31 | props.put("bootstrap.servers", "HOSTNAME:9092");
32 | props.put("group.id", "test");
33 | props.put("partition.assignment.strategy", "roundrobin");
34 | props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
35 | props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
36 |
37 | String topicId="parallec-topic";
38 |
39 | kafka.consumer.ConsumerConfig consumerConfig = new kafka.consumer.ConsumerConfig(props);
40 |
41 | ConsumerConnector consumerConnector = Consumer.createJavaConsumerConnector(consumerConfig);
42 | Map topicCountMap = new HashMap();
43 | topicCountMap.put(topicId, 1);
44 | Map>> consumerMap = consumerConnector.createMessageStreams(topicCountMap);
45 |
46 | List> streamList = consumerMap.get(topicId);
47 |
48 | KafkaStream stream = streamList.get(0);
49 |
50 | ConsumerIterator iterator = stream.iterator();
51 | while(iterator.hasNext()) {
52 | System.err.println("\nKafka Subscriber received event: ");
53 | System.out.println(new String(iterator.next().message()));
54 | }
55 |
56 | }
57 |
58 |
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/samplekafkareceiver/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author ypei
6 | *
7 | */
8 | package io.parallec.sample.app.http.samplekafkareceiver;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/sampleserver/HttpServerSampleAsyncApiWithPollableJob.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.http.sampleserver;
2 |
3 | import java.io.IOException;
4 | import java.util.Date;
5 | import java.util.Map;
6 | import java.util.UUID;
7 | import java.util.concurrent.ConcurrentHashMap;
8 | import java.util.logging.Logger;
9 |
10 | import fi.iki.elonen.NanoHTTPD;
11 | import fi.iki.elonen.NanoHTTPD.Response.Status;
12 |
13 | /**
14 | * Sample HTTP Server (like a mini tomcat, runs at port 10080 will run forever until being killed)
15 | *
16 | * Accept APIs 1. POST: /submitJob; 2. GET: /status/$JOB_ID ; 3. GET /testHeaders to
17 | * log "sample" keyvalue in header
18 | *
19 | * note that the job map will never be clean up until it reaches 8192
20 | *
21 | * if request is submit a job: 1. submit job POST: /submitJob return: {"status":
22 | * "/status/01218499-a5fe-47cf-a0a8-8e9b106c5219", "progress": 0}
23 | *
24 | * 2. poll progress GET: /status/{JobID}
25 | *
26 | * @author Yuanteng (Jeff) Pei
27 | *
28 | */
29 | public class HttpServerSampleAsyncApiWithPollableJob extends NanoHTTPD {
30 |
31 | public static String AUTH_KEY = "SAMPLE_AUTH_KEY";
32 | private static Logger logger = Logger
33 | .getLogger(HttpServerSampleAsyncApiWithPollableJob.class.getName());
34 | public static final int PORT = 10080;
35 |
36 | public HttpServerSampleAsyncApiWithPollableJob() throws IOException {
37 | super(PORT);
38 | logger.info("Try to start nano server. make sure port " + PORT
39 | + " is not used!");
40 | start();
41 |
42 | logger.info("\nWeb Server with Pollable Jobs Running! \n"
43 | + "Accept 1. POST: /submitJob; 2. GET: /status/$JOB_ID s\n"
44 | + "Point your browers to http://localhost:10080/ \n");
45 | }
46 |
47 | public static void main(String[] args) {
48 | try {
49 | new HttpServerSampleAsyncApiWithPollableJob();
50 | while (true) {
51 | ;
52 | }
53 | } catch (IOException ioe) {
54 | System.err.println("Couldn't start server:\n" + ioe);
55 | }
56 | }
57 |
58 | public static Map jobMap = new ConcurrentHashMap();
59 |
60 | public final int MAX_JOB_SIZE = 8192;
61 |
62 | public synchronized NanoJob addJob() {
63 |
64 | if (jobMap.size() >= MAX_JOB_SIZE) {
65 | logger.info("jobMap too large. clean up");
66 | jobMap.clear();
67 | }
68 |
69 | NanoJob job = new NanoJob();
70 | jobMap.put(job.getJobId(), job);
71 |
72 | return job;
73 | }
74 |
75 | @Override
76 | public Response serve(IHTTPSession session) {
77 | String msg = "Hello server
\n";
78 | String msgUnauthorized = "Unauthorized
\n";
79 | Method method = session.getMethod();
80 | String uri = session.getUri();
81 |
82 | logger.info("GET REQ: Method " + method + " URL: " + uri);
83 |
84 | if (method == Method.POST && uri.contains("submitJob")) {
85 |
86 | // careful authorization may change to lower case
87 | if ((session.getHeaders().containsKey("authorization") && session
88 | .getHeaders().get("authorization")
89 | .equalsIgnoreCase(AUTH_KEY))) {
90 |
91 | NanoJob job = addJob();
92 |
93 | msg = "{\"status\": \"/status/" + job.getJobId()
94 | + "\", \"progress\": 0}";
95 | logger.info("SERVER_RESPONSE_200: " + msg);
96 | return new fi.iki.elonen.NanoHTTPD.Response(Status.OK,
97 | "application/json", msg);
98 | } else {
99 | logger.info("SERVER_RESPONSE_401: " + msg);
100 | return new fi.iki.elonen.NanoHTTPD.Response(
101 | Status.UNAUTHORIZED, "application/json",
102 | msgUnauthorized);
103 | }
104 |
105 | } else if (method == Method.GET && uri.contains("/status/")) {
106 |
107 | // poll progress
108 | String jobId = uri.replace("/status/", "");
109 | NanoJob pollJob = jobMap.get(jobId);
110 | if (pollJob == null) {
111 | msg = "{\"status\": \"/status/" + jobId
112 | + "\", \"errorMsg\": \"job not found\"}";
113 | logger.info("SERVER_RESPONSE_404: " + msg);
114 | return new fi.iki.elonen.NanoHTTPD.Response(Status.NOT_FOUND,
115 | "application/json", msg);
116 | } else {
117 | pollJob.makeProgress();
118 | msg = "{\"status\": \"/status/" + jobId + "\", \"progress\": "
119 | + pollJob.getProgress() + "}";
120 | logger.info("SERVER_RESPONSE_200: " + msg);
121 | return new fi.iki.elonen.NanoHTTPD.Response(Status.OK,
122 | "application/json", msg);
123 | }
124 |
125 | } else if (method == Method.GET && uri.contains("/testHeaders")) {
126 |
127 | if (session.getHeaders().containsKey("sample")) {
128 | logger.info("Sample Header value {}: "
129 | + session.getHeaders().get("sample"));
130 |
131 | msg = session.getHeaders().get("sample");
132 | logger.info("SERVER_RESPONSE_200: " + msg);
133 | return new fi.iki.elonen.NanoHTTPD.Response(Status.OK,
134 | "application/json", msg);
135 |
136 | }
137 |
138 | }// end else
139 | msg = "{ \"errorMsg\": \"bad request. Accept 1. POST: /submitJob; 2. GET: /status/$JOB_ID \"}";
140 | return new fi.iki.elonen.NanoHTTPD.Response(Status.BAD_REQUEST,
141 | "application/json", msg);
142 |
143 | }
144 |
145 | public static class NanoJob {
146 |
147 | private String jobId;
148 | private int progress;
149 |
150 | private Date startTime;
151 |
152 | public void makeProgress() {
153 |
154 | Date currentTime = new Date();
155 | int seconds = (int) ((currentTime.getTime() - startTime.getTime()) / 1000L);
156 |
157 | if (seconds >= 10)
158 | progress = 100;
159 | else
160 | progress = (int) seconds * 10;
161 |
162 | }
163 |
164 | public String getJobId() {
165 | return jobId;
166 | }
167 |
168 | public void setJobId(String jobId) {
169 | this.jobId = jobId;
170 | }
171 |
172 | public int getProgress() {
173 | return progress;
174 | }
175 |
176 | public void setProgress(int progress) {
177 | this.progress = progress;
178 | }
179 |
180 | public NanoJob(String jobId, int progress) {
181 | super();
182 | this.jobId = jobId;
183 | this.progress = progress;
184 | this.startTime = new Date();
185 | }
186 |
187 | public NanoJob() {
188 | super();
189 | this.jobId = UUID.randomUUID().toString();
190 | this.progress = 0;
191 | this.startTime = new Date();
192 | }
193 | }
194 |
195 | }
196 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/http/sampleserver/package-info.java:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * @author Yuanteng (Jeff) Pei
4 | *
5 | */
6 | package io.parallec.sample.app.http.sampleserver;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Yuanteng (Jeff) Pei
6 | *
7 | */
8 | package io.parallec.sample.app;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/ping/Ping100WebApp.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.ping;
2 |
3 | import io.parallec.core.HostsSourceType;
4 | import io.parallec.core.ParallecResponseHandler;
5 | import io.parallec.core.ParallelClient;
6 | import io.parallec.core.ParallelTask;
7 | import io.parallec.core.ResponseOnSingleTask;
8 | import io.parallec.core.bean.ping.PingMode;
9 | import io.parallec.core.util.PcStringUtils;
10 |
11 | import java.util.Map;
12 |
13 | /**
14 | * Notice default ping mode is INET_ADDRESS_REACHABLE_NEED_ROOT
15 | * which requires **ROOT permission** for accurate results in ICMP.
16 | *
17 | * @author Yuanteng (Jeff) Pei
18 | *
19 | */
20 | public class Ping100WebApp {
21 |
22 | public static void main(String[] args) {
23 | ParallelClient pc = new ParallelClient();
24 | ParallelTask task = pc.preparePing().setConcurrency(1500)
25 | .setTargetHostsFromLineByLineText("http://www.parallec.io/userdata/sample_target_hosts_top100_old.txt",
26 | HostsSourceType.URL)
27 | .setPingMode(PingMode.INET_ADDRESS_REACHABLE_NEED_ROOT)
28 | .setPingNumRetries(1)
29 | .setPingTimeoutMillis(500)
30 | .execute(new ParallecResponseHandler() {
31 | public void onCompleted(ResponseOnSingleTask res,
32 | Map responseContext) {
33 | System.out.println(res.toString());
34 | }
35 | });
36 |
37 | System.out.println("Task Pretty Print: \n" +
38 | PcStringUtils.renderJson(task.getAggregateResultCountSummary()));
39 | System.out.println("Total Duration: " + task.getDurationSec());
40 | pc.releaseExternalResources();
41 | }// end func
42 | }
43 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/ping/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Yuanteng (Jeff) Pei
6 | *
7 | */
8 | package io.parallec.sample.app.ping;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/ssh/SshApp.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.ssh;
2 |
3 | import io.parallec.core.ParallecResponseHandler;
4 | import io.parallec.core.ParallelClient;
5 | import io.parallec.core.ResponseOnSingleTask;
6 | import io.parallec.core.bean.ssh.SshLoginType;
7 |
8 | import java.util.Map;
9 |
10 | /**
11 | * Instruction:
12 | * put the correct ip address, username, [key/password]
13 | * then try it
14 | *
15 | * tested with AWS Ec2 instance key/passwd
16 | * @author Yuanteng (Jeff) Pei
17 | *
18 | */
19 | public class SshApp {
20 |
21 | public static String vmIp = "1.2.3.4";
22 | public static String userName = "yourusername";
23 | public static String password = "yourpassword";
24 | public static String privKeyRelativePath = "userdata/your-vm-keys.pem";
25 | public static void main(String[] args) {
26 | sshVmWithPassword();
27 | //sshVmWithKey();
28 | }// end func
29 | public static void sshVmWithKey() {
30 |
31 | ParallelClient pc = new ParallelClient();
32 | pc.prepareSsh().setConcurrency(150)
33 | .setTargetHostsFromString(vmIp)
34 | .setSshLoginType(SshLoginType.KEY)
35 | .setSshUserName(userName)
36 | .setSshPrivKeyRelativePath(privKeyRelativePath)
37 | .setSshCommandLine("df -h; hostname -f; date; ")
38 | .execute(new ParallecResponseHandler() {
39 | public void onCompleted(ResponseOnSingleTask res,
40 | Map responseContext) {
41 | System.out.println("Responose:" + res.toString() + " host: "
42 | + res.getHost() + " errmsg: "
43 | + res.getErrorMessage());
44 | }
45 | });
46 | pc.releaseExternalResources();
47 | }
48 |
49 | public static void sshVmWithPassword() {
50 |
51 | ParallelClient pc = new ParallelClient();
52 | pc.prepareSsh().setConcurrency(150)
53 | .setTargetHostsFromString(vmIp)
54 | .setSshCommandLine("df -h; hostname -f; date; ")
55 | .setSshUserName(userName)
56 | .setSshPassword(password)
57 |
58 | .execute(new ParallecResponseHandler() {
59 |
60 | @Override
61 | public void onCompleted(ResponseOnSingleTask res,
62 | Map responseContext) {
63 | System.out.println("Responose:" + res.toString() + " host: "
64 | + res.getHost() + " errmsg: "
65 | + res.getErrorMessage());
66 | }
67 | });
68 | pc.releaseExternalResources();
69 | }
70 |
71 |
72 | }
73 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/ssh/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Yuanteng (Jeff) Pei
6 | *
7 | */
8 | package io.parallec.sample.app.ssh;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/tcp/TcpApp.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.tcp;
2 |
3 | import io.parallec.core.ParallecResponseHandler;
4 | import io.parallec.core.ParallelClient;
5 | import io.parallec.core.ResponseOnSingleTask;
6 |
7 | import java.util.Map;
8 |
9 | /**
10 | * requirement: first run Sample TCP Echo Server on port 10081
11 | * in package io.parallec.sample.app.tcp.sampleserver.
12 | *
13 | * Then run this app
14 | * @author Yuanteng (Jeff) Pei
15 | *
16 | */
17 | public class TcpApp {
18 |
19 | public static void main(String[] args) {
20 | ParallelClient pc = new ParallelClient();
21 | pc.prepareTcp("requestMonitor")
22 | .setTargetHostsFromString("localhost")
23 | .setTcpPort(10081)
24 | .execute(new ParallecResponseHandler() {
25 | public void onCompleted(ResponseOnSingleTask res,
26 | Map responseContext) {
27 | System.out.println("Responose:" + res.getResponseContent() + " host: "
28 | + res.getHost() + " errmsg: "
29 | + res.getErrorMessage());
30 | }
31 | });
32 | pc.releaseExternalResources();
33 | }// end func
34 | }
35 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/tcp/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Yuanteng (Jeff) Pei
6 | *
7 | */
8 | package io.parallec.sample.app.tcp;
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/tcp/sampleserver/TcpEchoServer.java:
--------------------------------------------------------------------------------
1 | package io.parallec.sample.app.tcp.sampleserver;
2 |
3 | /**
4 | * Sample TCP Echo Server on port 10081.
5 | * will echo back 3 lines of response that include the request string,
6 | * then auto close the connection
7 | */
8 |
9 | import java.io.BufferedReader;
10 | import java.io.IOException;
11 | import java.io.InputStreamReader;
12 | import java.io.PrintWriter;
13 | import java.net.ServerSocket;
14 | import java.net.Socket;
15 |
16 | import org.slf4j.Logger;
17 | import org.slf4j.LoggerFactory;
18 |
19 | public class TcpEchoServer {
20 |
21 | protected static final Logger logger = LoggerFactory
22 | .getLogger(TcpEchoServer.class);
23 |
24 | private ServerSocket serverSocket;
25 | private int port = 10081;
26 |
27 | private boolean idle;
28 |
29 | public TcpEchoServer(boolean idle) {
30 | try {
31 |
32 | this.idle = idle;
33 |
34 | setServer(new ServerSocket(port));
35 | } catch (Exception ex) {
36 | System.err.println("Could not listen on port: " + port);
37 | }
38 | }
39 |
40 |
41 | public static void main(String[] args) {
42 | try {
43 | TcpEchoServer server = new TcpEchoServer(false);
44 | server.serve();
45 |
46 |
47 | } catch (Exception e) {
48 | System.err.println("Couldn't start server:\n" + e);
49 | }
50 | }
51 |
52 | public void stop() {
53 | try{
54 |
55 | serverSocket.close();
56 | }catch(Exception e){
57 | logger.error("error in stop server socket ", e);
58 | }
59 | }
60 |
61 | public void serve() throws IOException {
62 |
63 | Socket clientSocket = null;
64 | try {
65 | while (true) {
66 |
67 | System.out.println("TCP Echo Server Started on port "
68 | +port
69 | + " . \nWaiting for connection.....");
70 | clientSocket = serverSocket.accept();
71 | logger.info("Client Connection successful");
72 | logger.info("Waiting for input.....");
73 |
74 | PrintWriter out = new PrintWriter(
75 | clientSocket.getOutputStream(), true);
76 | BufferedReader in = new BufferedReader(new InputStreamReader(
77 | clientSocket.getInputStream()));
78 |
79 | String inputLine;
80 | //just read 1 single line then auto close
81 | if ((inputLine = in.readLine()) != null) {
82 | logger.info("Server: " + inputLine);
83 |
84 | for(int i=1; i<=3; i++){
85 | String msg ="L: "+i+ " " +inputLine +" AT_TCP_SERVER ";
86 | out.println(msg);
87 | logger.info(msg);
88 | }
89 |
90 | }
91 | //whether to close after a single request.
92 | // the interrupt is critical otherwise cannot easily shutdown
93 | if(!this.idle) {
94 | out.close();
95 | clientSocket.close();
96 | in.close();
97 | }else{
98 | Thread.sleep(1000L);
99 | }
100 |
101 | }
102 |
103 | } catch (IOException | InterruptedException e) {
104 | logger.error("Exception in echo server. "
105 | + "\nExpected when shutdown. {}", e.getLocalizedMessage());
106 | } finally{
107 | if(serverSocket!=null && !serverSocket.isClosed())
108 | serverSocket.close();
109 |
110 | }
111 |
112 | }
113 |
114 | public ServerSocket getServer() {
115 | return serverSocket;
116 | }
117 |
118 | public void setServer(ServerSocket server) {
119 | this.serverSocket = server;
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/sample-apps/src/main/java/io/parallec/sample/app/tcp/sampleserver/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Yuanteng (Jeff) Pei
6 | *
7 | */
8 | package io.parallec.sample.app.tcp.sampleserver;
--------------------------------------------------------------------------------
/sample-apps/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
13 |
14 |
15 |
16 |
17 |
18 | parallec_logs/parallec.log
19 |
20 |
21 | parallec_logs/parallec.%i.log
22 | 1
23 | 5
24 |
25 |
26 |
27 | 50MB
28 |
29 |
30 | UTF-8
31 | %d %-4relative [%thread] %-5level %logger{35} - %msg%n
32 |
33 |
34 |
35 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/sample-apps/userdata/keepthisfile:
--------------------------------------------------------------------------------
1 | do not remove this for git
2 |
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_json_path.json:
--------------------------------------------------------------------------------
1 | {
2 | "sample": {
3 | "small-target-hosts": [
4 | {
5 | "hostName": "parallec.github.io",
6 | "description": "parallec website"
7 | },
8 | {
9 | "hostName": "www.jeffpei.com",
10 | "description": "my personal website"
11 | },
12 | {
13 | "hostName": "www.restcommander.com",
14 | "description": "restcommander website"
15 | }
16 | ],
17 | "others": {
18 | "hostName": "www.google.com",
19 | "description": "google website"
20 | }
21 | },
22 | "totalCount": 3
23 | }
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_top100.txt:
--------------------------------------------------------------------------------
1 | google.com
2 | youtube.com
3 | facebook.com
4 | msn.com
5 | twitter.com
6 | bing.com
7 | yelp.com
8 | amazon.com
9 | microsoft.com
10 | answers.com
11 | buzzfeed.com
12 | pinterest.com
13 | live.com
14 | yahoo.com
15 | ebay.com
16 | wikipedia.org
17 | aol.com
18 | wikia.com
19 | paypal.com
20 | ask.com
21 | linkedin.com
22 | about.com
23 | wordpress.com
24 | blogger.com
25 | diply.com
26 | craigslist.org
27 | bustle.com
28 | blogspot.com
29 | urbandictionary.com
30 | whitepages.com
31 | weather.com
32 | walmart.com
33 | mozilla.org
34 | stackexchange.com
35 | adobe.com
36 | wayfair.com
37 | vimeo.com
38 | quizlet.com
39 | sbnation.com
40 | nydailynews.com
41 | nytimes.com
42 | healthline.com
43 | imgur.com
44 | legacy.com
45 | wellsfargo.com
46 | usmagazine.com
47 | dose.com
48 | comcast.net
49 | topix.com
50 | ijreview.com
51 | mapquest.com
52 | godaddy.com
53 | uproxx.com
54 | go.com
55 | babycenter.com
56 | goodreads.com
57 | bizrate.com
58 | southwest.com
59 | refinery29.com
60 | glassdoor.com
61 | 247sports.com
62 | fandango.com
63 | nbcsports.com
64 | imdb.com
65 | instructables.com
66 | theverge.com
67 | thechive.com
68 | chase.com
69 | ibtimes.com
70 | people.com
71 | distractify.com
72 | rare.us
73 | yourdailydish.com
74 | deviantart.com
75 | apple.com
76 | city-data.com
77 | mic.com
78 | vox.com
79 | photobucket.com
80 | att.com
81 | ups.com
82 | hubpages.com
83 | usps.com
84 | al.com
85 | tmz.com
86 | theblaze.com
87 | moviepilot.com
88 | qpolitical.com
89 | rollingstone.com
90 | webmd.com
91 | instagram.com
92 | lifehacker.com
93 | rawstory.com
94 | booking.com
95 | guff.com
96 | ranker.com
97 | zillow.com
98 | yellowpages.com
99 | upworthy.com
100 | americanoverlook.com
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_top1000.txt:
--------------------------------------------------------------------------------
1 | google.com
2 | youtube.com
3 | facebook.com
4 | msn.com
5 | twitter.com
6 | bing.com
7 | yelp.com
8 | amazon.com
9 | microsoft.com
10 | answers.com
11 | buzzfeed.com
12 | pinterest.com
13 | live.com
14 | yahoo.com
15 | ebay.com
16 | wikipedia.org
17 | aol.com
18 | wikia.com
19 | paypal.com
20 | ask.com
21 | linkedin.com
22 | about.com
23 | wordpress.com
24 | blogger.com
25 | diply.com
26 | craigslist.org
27 | bustle.com
28 | blogspot.com
29 | urbandictionary.com
30 | whitepages.com
31 | weather.com
32 | walmart.com
33 | mozilla.org
34 | stackexchange.com
35 | adobe.com
36 | wayfair.com
37 | vimeo.com
38 | quizlet.com
39 | sbnation.com
40 | nydailynews.com
41 | nytimes.com
42 | healthline.com
43 | imgur.com
44 | legacy.com
45 | wellsfargo.com
46 | usmagazine.com
47 | dose.com
48 | comcast.net
49 | topix.com
50 | ijreview.com
51 | mapquest.com
52 | godaddy.com
53 | uproxx.com
54 | go.com
55 | babycenter.com
56 | goodreads.com
57 | bizrate.com
58 | southwest.com
59 | refinery29.com
60 | glassdoor.com
61 | 247sports.com
62 | fandango.com
63 | nbcsports.com
64 | imdb.com
65 | instructables.com
66 | theverge.com
67 | thechive.com
68 | chase.com
69 | ibtimes.com
70 | people.com
71 | distractify.com
72 | rare.us
73 | yourdailydish.com
74 | deviantart.com
75 | apple.com
76 | city-data.com
77 | mic.com
78 | vox.com
79 | photobucket.com
80 | att.com
81 | ups.com
82 | hubpages.com
83 | usps.com
84 | al.com
85 | tmz.com
86 | theblaze.com
87 | moviepilot.com
88 | qpolitical.com
89 | rollingstone.com
90 | webmd.com
91 | instagram.com
92 | lifehacker.com
93 | rawstory.com
94 | booking.com
95 | guff.com
96 | ranker.com
97 | zillow.com
98 | yellowpages.com
99 | upworthy.com
100 | americanoverlook.com
101 | gizmodo.com
102 | tripadvisor.com
103 | hp.com
104 | theonion.com
105 | nbcnews.com
106 | thoughtcatalog.com
107 | gfycat.com
108 | nj.com
109 | westernjournalism.com
110 | opposingviews.com
111 | faithtap.com
112 | youngcons.com
113 | thekitchn.com
114 | target.com
115 | dailydot.com
116 | bankofamerica.com
117 | inquisitr.com
118 | bestbuy.com
119 | gawker.com
120 | rottentomatoes.com
121 | myspace.com
122 | homedepot.com
123 | fedex.com
124 | staples.com
125 | eonline.com
126 | dmv.org
127 | etsy.com
128 | salon.com
129 | examiner.com
130 | sears.com
131 | buzzlie.com
132 | reddit.com
133 | cheatsheet.com
134 | deadspin.com
135 | mlb.com
136 | radaronline.com
137 | androidcentral.com
138 | drudgereport.com
139 | merriam-webster.com
140 | mentalfloss.com
141 | windows.com
142 | cnet.com
143 | skype.com
144 | nbc.com
145 | mlive.com
146 | hellogiggles.com
147 | stackoverflow.com
148 | bbb.org
149 | brainjet.com
150 | myrecipes.com
151 | emgn.com
152 | allenbwest.com
153 | brommando.com
154 | cbssports.com
155 | expedia.com
156 | cinemablend.com
157 | cnbc.com
158 | msnbc.com
159 | dailykos.com
160 | liftbump.com
161 | cvs.com
162 | ozy.com
163 | omgfacts.com
164 | cnn.com
165 | fidelity-media.com
166 | newsmax.com
167 | patheos.com
168 | jezebel.com
169 | americanexpress.com
170 | lifescript.com
171 | today.com
172 | powerinbox.com
173 | someecards.com
174 | thehill.com
175 | twitch.tv
176 | howtogeek.com
177 | potterybarn.com
178 | netflix.com
179 | eater.com
180 | internetautoguide.com
181 | macrumors.com
182 | io9.com
183 | evite.com
184 | stripe.com
185 | okmagazine.com
186 | disney.com
187 | costco.com
188 | kohls.com
189 | independent.co.uk
190 | shopping.com
191 | pixable.com
192 | thepoliticalinsider.com
193 | jcpenney.com
194 | overstock.com
195 | lpsnmedia.net
196 | smarter.com
197 | capitalone.com
198 | crowdsocial.com
199 | imore.com
200 | zimbio.com
201 | suggest.com
202 | alibaba.com
203 | timeanddate.com
204 | lowes.com
205 | twentytwowords.com
206 | nih.gov
207 | enotes.com
208 | abcmenorca.net
209 | flickr.com
210 | boxingmoney.com
211 | nesn.com
212 | starpulse.com
213 | sfgate.com
214 | toptenvideos.com
215 | walgreens.com
216 | liveleak.com
217 | cc.com
218 | beenverified.com
219 | turner.com
220 | trulia.com
221 | fidelity.com
222 | oregonlive.com
223 | discover.com
224 | mosthappy.com
225 | travelzoo.com
226 | shmoop.com
227 | americannews.com
228 | dailymail.co.uk
229 | kotaku.com
230 | ulta.com
231 | macys.com
232 | driversupport.com
233 | lifebuzz.com
234 | usaa.com
235 | dailycaller.com
236 | cleveland.com
237 | stylebistro.com
238 | connect5364.com
239 | stuccu.com
240 | office.com
241 | apartmenttherapy.com
242 | ask.fm
243 | ticketmaster.com
244 | verizon.com
245 | break.com
246 | onestore.ms
247 | seriouseats.com
248 | brobible.com
249 | fuel451.com
250 | playboy.com
251 | googletagmanager.com
252 | tiqcdn.com
253 | dummies.com
254 | techradar.com
255 | atemda.com
256 | getitfree.us
257 | creditkarma.com
258 | thinkprogress.org
259 | weather.gov
260 | prisacom.com
261 | odometer.com
262 | theguardian.com
263 | politico.com
264 | softonic.com
265 | southernliving.com
266 | superuser.com
267 | thefederalistpapers.org
268 | ybx.io
269 | n192adserv.com
270 | cabelas.com
271 | minq.com
272 | movable-ink-2183.com
273 | britannica.com
274 | clipd.com
275 | collegehumor.com
276 | deliverimp.com
277 | jalopnik.com
278 | dallasblack.com
279 | getdrivingdirections.co
280 | pbs.org
281 | zoomads.net
282 | cookinglight.com
283 | giphy.com
284 | ironbeast.io
285 | ca.gov
286 | edmunds.com
287 | mobilelikez.com
288 | worldlifestyle.com
289 | coupons.net
290 | drugs.com
291 | pch.com
292 | fixya.com
293 | unsubscribe-4-63.com
294 | adsupply.com
295 | csmonitor.com
296 | gravatar.com
297 | chacha.com
298 | nfl.com
299 | choicehotels.com
300 | washingtontimes.com
301 | thirdpresence.com
302 | indiegogo.com
303 | mbiscotti.com
304 | aarp.org
305 | srvv.co
306 | healthgrades.com
307 | cbsnews.com
308 | synoloads.com
309 | mensfitness.com
310 | foodnetwork.com
311 | ultimate-guitar.com
312 | saturdaydownsouth.com
313 | cloudsponge.com
314 | avclub.com
315 | adserve.io
316 | eleadcrm.com
317 | webroot.com
318 | ajc.com
319 | wsbtv.com
320 | npr.org
321 | medicinenet.com
322 | visualstudio.com
323 | basestyle.org
324 | nola.com
325 | businessinsider.com
326 | newser.com
327 | theatlantic.com
328 | lg.com
329 | wimp.com
330 | vitals.com
331 | bedbathandbeyond.com
332 | startribune.com
333 | yourtango.com
334 | aolsearch.com
335 | idigitaltimes.com
336 | allstateagencies.com
337 | thangasoline.com
338 | citibank.com
339 | jambia.com
340 | telemundo.com
341 | vine.co
342 | swifty.com
343 | carhartt.com
344 | consumerreports.org
345 | mysynchrony.com
346 | nmcdn.us
347 | trustpilot.com
348 | food.com
349 | aliexpress.com
350 | popsugar.com
351 | bandcamp.com
352 | wow.com
353 | iasds01.com
354 | medicalnewstoday.com
355 | envywomen.com
356 | agorafinancial.com
357 | carters.com
358 | rotoworld.com
359 | barnesandnoble.com
360 | newsweek.com
361 | hilton.com
362 | greatschools.org
363 | billoreilly.com
364 | puckermob.com
365 | easybib.com
366 | petfinder.com
367 | livingly.com
368 | analytics-egain.com
369 | unilad.co.uk
370 | usa.gov
371 | grindtv.com
372 | totalrewards.com
373 | wix.com
374 | looper.com
375 | wunderground.com
376 | scout.com
377 | noaa.gov
378 | michaels.com
379 | hotnewhiphop.com
380 | dropbox.com
381 | greatist.com
382 | ebaumsworld.com
383 | americanews.com
384 | jumblejoy.com
385 | united.com
386 | shopify.com
387 | infowars.com
388 | newegg.com
389 | videostat.com
390 | oola.com
391 | tributes.com
392 | googlevideo.com
393 | angieslist.com
394 | fitbit.com
395 | comicbook.com
396 | qvc.com
397 | boomtrain.com
398 | boostable.com
399 | btttag.com
400 | hotjar.com
401 | tvaccessnow.com
402 | videoactivenetwork.tv
403 | interactivebrokers.com
404 | economist.com
405 | indeed.com
406 | citi.com
407 | pagesix.com
408 | archive.org
409 | vennq.com
410 | atomica.com
411 | wnd.com
412 | sharecare.com
413 | viralands.com
414 | shape.com
415 | latimes.com
416 | wikimedia.org
417 | dish.com
418 | infoplease.com
419 | allrecipes.com
420 | mediaite.com
421 | ink361.com
422 | befrugal.com
423 | viewwonder.com
424 | justanswer.com
425 | azurewebsites.net
426 | ksl.com
427 | 247-inc.net
428 | cdnpps.us
429 | 9to5mac.com
430 | kinja-static.com
431 | good.is
432 | xfinity.com
433 | dailysanctuary.com
434 | local.com
435 | smosh.com
436 | tstags.com
437 | gunbroker.com
438 | fishwrapper.com
439 | nationalgeographic.com
440 | siriusxm.com
441 | bravotv.com
442 | officedepot.com
443 | simplyhired.com
444 | wittyfeed.com
445 | sovereignsociety.com
446 | rollbar.com
447 | hsionlineorders.net
448 | bradsdeals.com
449 | malwarebytes.org
450 | womanfreebies.com
451 | force.com
452 | blessings.com
453 | techtimes.com
454 | presscdn.com
455 | reuters.com
456 | usbank.com
457 | patient.info
458 | fanplayr.com
459 | king.com
460 | hulu.com
461 | kabbage.com
462 | thepennyhoarder.com
463 | mrc-isaca.org
464 | howstuffworks.com
465 | phluidmediacrv.net
466 | snapwidget.com
467 | zadsy.com
468 | aabkc.com
469 | clickcertain.com
470 | potterybarnkids.com
471 | microsoftstore.com
472 | peoplefinders.com
473 | biglots.com
474 | inspiremore.com
475 | sumome.com
476 | samsclub.com
477 | roku.com
478 | brainfall.com
479 | polygon.com
480 | usnews.com
481 | scribd.com
482 | nile.works
483 | kbb.com
484 | experienceproject.com
485 | cbs.com
486 | unsubjn67.com
487 | discovercard.com
488 | ssa.gov
489 | epsilon.com
490 | kompasads.net
491 | nhl.com
492 | charter.net
493 | freeskreen.com
494 | groceryserver.com
495 | hitfix.com
496 | wgntv.com
497 | shareably.net
498 | education.com
499 | allmenus.com
500 | kaiserpermanente.org
501 | vantagemedia.com
502 | tribuneinteractive.com
503 | syracuse.com
504 | safeunsubscribing.com
505 | rantsports.com
506 | knowyourmeme.com
507 | safeway.com
508 | pressganey.com
509 | purplemath.com
510 | kmart.com
511 | townhall.com
512 | straightdope.com
513 | democrats.org
514 | lifedaily.com
515 | miamiherald.com
516 | nationalreview.com
517 | isidewith.com
518 | slideshare.net
519 | timeout.com
520 | lonny.com
521 | toofab.com
522 | elephantjournal.com
523 | gettyimages.com
524 | gofundme.com
525 | snopes.com
526 | styleads.de
527 | palmbeachletter.com
528 | collegespun.com
529 | chicagotribune.com
530 | actblue.com
531 | teracreative.com
532 | matadornetwork.com
533 | llbean.com
534 | irs.gov
535 | whatculture.com
536 | protected-payment-solutions.com
537 | wn.com
538 | mytheresa.com
539 | retailmenot.com
540 | tracfone.com
541 | pitchfork.com
542 | vanguard.com
543 | studyblue.com
544 | list-manage2.com
545 | dorkly.com
546 | liftable.com
547 | soma.com
548 | spokeo.com
549 | niche.com
550 | randpaul.com
551 | seventhavenue.com
552 | pressroomvip.com
553 | palmbeachgroup.com
554 | caringbridge.org
555 | blogher.org
556 | xwebseo.com
557 | whatbrowser.org
558 | flightaware.com
559 | uberhavoc.com
560 | priceline.com
561 | marriott.com
562 | grainger.com
563 | helzberg.com
564 | dunzo.net
565 | chwplan.com
566 | ato.mx
567 | alternet.org
568 | afftrackr.com
569 | thegrio.com
570 | myheritage.com
571 | wikihow.com
572 | theclickcheck.com
573 | listverse.com
574 | food4patriots.com
575 | jotform.com
576 | directv.com
577 | seattletimes.com
578 | eclinicalweb.com
579 | ancestry.com
580 | tvguide.com
581 | salsalabs.com
582 | homeadvisor.com
583 | videoswag.tv
584 | predicta.net
585 | sportingnews.com
586 | hollywoodreporter.com
587 | smithsonianmag.com
588 | socialchique.com
589 | thenextweb.com
590 | talkingpointsmemo.com
591 | mcafee.com
592 | therightways.com
593 | nextdoor.com
594 | manta.com
595 | sciencealert.com
596 | findagrave.com
597 | wral.com
598 | muscleandfitness.com
599 | delta.com
600 | blair.com
601 | pennlive.com
602 | carambo.la
603 | autotrader.com
604 | medicaldaily.com
605 | algebra.com
606 | hgtv.com
607 | astrology.com
608 | menards.com
609 | intuit.com
610 | eelaerankbuilder.com
611 | medallia.com
612 | egokick.com
613 | encyclopedia.com
614 | admtpmp123.com
615 | therecipespage.com
616 | rewardzoneusa.com
617 | mercurynews.com
618 | fiftyone.com
619 | holidayinn.com
620 | patch.com
621 | pastemagazine.com
622 | autoblog.com
623 | hiexpress.com
624 | h-cdn.co
625 | hotels.com
626 | eastbay.com
627 | kinja.com
628 | visa.com
629 | likesgag.com
630 | myway.com
631 | pubmine.com
632 | buzzlamp.com
633 | nationalmssociety.org
634 | wildtangent.com
635 | faithit.com
636 | travelsmith.com
637 | thepostgame.com
638 | kiplinger.com
639 | campaign-archive1.com
640 | costco-static.com
641 | groupon.com
642 | sciencedaily.com
643 | nasa.gov
644 | femmezine.com
645 | hercampus.com
646 | mashable.com
647 | gothamist.com
648 | warbirdinformationexchange.org
649 | bing-int.com
650 | beauty.com
651 | gurl.com
652 | bp.blogspot.com
653 | 411.com
654 | tunein.com
655 | iemooentypo.com
656 | ordergroove.com
657 | denverpost.com
658 | rev2pub.com
659 | aaa.com
660 | deseretnews.com
661 | outlook.com
662 | 123greetings.com
663 | cheezburger.com
664 | aa.com
665 | ppjol.com
666 | crocs.com
667 | comcast.com
668 | lakeside.com
669 | heritage.org
670 | fold3.com
671 | lyricsmode.com
672 | fansided.com
673 | cars.com
674 | experian.com
675 | cbc.ca
676 | metafilter.com
677 | attn.com
678 | kaspersky.com
679 | news-selfreliancecentral.com
680 | va.gov
681 | google.ca
682 | edigitalsurvey.com
683 | curbed.com
684 | po.st
685 | oprah.com
686 | ft.com
687 | washingtonexaminer.com
688 | modemediacorp.com
689 | gradesaver.com
690 | mommypage.com
691 | bleacherreport.com
692 | newyorker.com
693 | kfor.com
694 | instantcheckmate.com
695 | exclusivesandmore.com
696 | tickld.com
697 | optout-mzkl.net
698 | gemius.pl
699 | mnn.com
700 | bhphotovideo.com
701 | gannett-cdn.com
702 | foxbusiness.com
703 | ford.com
704 | librato.com
705 | vrbo.com
706 | collegeconfidential.com
707 | curiyo.com
708 | joann.com
709 | mommybase.com
710 | autozone.com
711 | lfb.org
712 | flipp.com
713 | queerty.com
714 | bloxcms.com
715 | christianbook.com
716 | trivago.com
717 | clicksvenue.com
718 | thinkgeek.com
719 | amarktflow.com
720 | backpage.com
721 | spnccrzone.com
722 | rantlifestyle.com
723 | securepaymentsnetwork.com
724 | beliefnet.com
725 | alot.com
726 | tigerdirect.com
727 | socialsecurity.gov
728 | cvent.com
729 | mercola.com
730 | funnyordie.com
731 | hiddenplaybook.com
732 | pgatour.com
733 | pof.com
734 | webbyads.net
735 | eventbrite.com
736 | leadpages.net
737 | globalgrind.com
738 | rantchic.com
739 | c-span.org
740 | masslive.com
741 | redbox.com
742 | mrctv.org
743 | fodors.com
744 | wehavetheperfectlawn.com
745 | azlyrics.com
746 | espn.com
747 | awesomeom.com
748 | motortrend.com
749 | kansascity.com
750 | fareportal.com
751 | morningstar.com
752 | travelocity.com
753 | toysrus.com
754 | speedfixtool.com
755 | traffichunt.com
756 | forsalebyowner.com
757 | ihg.com
758 | williams-sonoma.com
759 | idistracted.net
760 | bencarson.com
761 | thefreedictionary.com
762 | tasteofhome.com
763 | redfin.com
764 | senate.gov
765 | nmhfiles.com
766 | everydayhealth.com
767 | zdnet.com
768 | kroger.com
769 | tomshardware.com
770 | thepetitionsite.com
771 | logentries.com
772 | retailpromotionsonline.com
773 | thewebtrovert.com
774 | affiliatetechnology.com
775 | kirotv.com
776 | nflxext.com
777 | avast.com
778 | firefox.com
779 | survivetheenddays.com
780 | microsofttranslator.com
781 | nameberry.com
782 | ukiewzhangzhny1.net
783 | wired.com
784 | careerbuilder.com
785 | getit-free.us
786 | artofmanliness.com
787 | nps.gov
788 | horoscope.com
789 | ty7news.com
790 | alicdn.com
791 | indiatimes.com
792 | peisedata.net
793 | ohciybharatinfoservice.net
794 | evbuc.com
795 | amazon.ca
796 | sfglobe.com
797 | ebay.ca
798 | businessdictionary.com
799 | netapplications.com
800 | loccitane.com
801 | observer.com
802 | thegatewaypundit.com
803 | moveon.org
804 | mailmunch.co
805 | racked.com
806 | dealer.com
807 | swoop.com
808 | t-mobile.com
809 | connatix.com
810 | newsmemory.com
811 | holaefsdata.com
812 | potterybarn.com.au
813 | mydas.mobi
814 | zappos.com
815 | adamoads.com
816 | cargurus.com
817 | shopyourway.com
818 | house.gov
819 | cdn77.org
820 | babble.com
821 | sacbee.com
822 | fixthisnation.com
823 | meetup.com
824 | panerabread.com
825 | bookingbuddy.com
826 | cdc.gov
827 | koeghmixi-birthday.net
828 | pga.com
829 | cybersource.com
830 | libsyn.com
831 | nordstrom.com
832 | outdoorchannel.com
833 | doodle.com
834 | biblegateway.com
835 | dailysignal.com
836 | orbitz.com
837 | weekendcollective.com
838 | optout-fchd.net
839 | mmamania.com
840 | politifact.com
841 | at2solution.com
842 | cnsnews.com
843 | hsselite.com
844 | firsttoknow.com
845 | epicurious.com
846 | wa.gov
847 | ticketmaster.ca
848 | ookla.com
849 | sprint.com
850 | followmyhealth.com
851 | filehippo.com
852 | transsender.net
853 | clickhole.com
854 | optout-zqff.net
855 | caesars.com
856 | ibm.com
857 | fortune.com
858 | revolvermaps.com
859 | laweekly.com
860 | 120sports.com
861 | dineouttonight.net
862 | ooquaapbin.net
863 | latinpost.com
864 | itsup.com
865 | charlotteobserver.com
866 | hefty.co
867 | ongeedodirnime.net
868 | ox-dyp.com
869 | workingmother.com
870 | research.net
871 | wetransfer.com
872 | express-scripts.com
873 | fame10.com
874 | mydisneyresorts.com
875 | onegoodthingbyjillee.com
876 | macmillandictionary.com
877 | informationvine.com
878 | canon.com
879 | box.com
880 | honda.com
881 | parade.com
882 | bloglovin.com
883 | wxyz.com
884 | hearinglossreversed.net
885 | gomerblog.com
886 | travelnevada.com
887 | twitchy.com
888 | 4shared.com
889 | zazzle.com
890 | pcgamer.com
891 | mysimon.com
892 | thegrommet.com
893 | troweprice.com
894 | anv.bz
895 | vistaprint.com
896 | ancestrydata.com
897 | lanebryant.com
898 | ashleyrnadison.com
899 | candlewoodsuites.com
900 | fieldandstream.com
901 | rr.com
902 | hiegowebcode.net
903 | resourcedepot.info
904 | wftv.com
905 | erroranswers.com
906 | browsehappy.com
907 | hsn.com
908 | softcoin.com
909 | si.com
910 | toprightnews.com
911 | lightboxcdn.com
912 | olivegarden.com
913 | voxmedia.com
914 | wpxi.com
915 | demandforce.com
916 | familyhandyman.com
917 | ikea.com
918 | intellicast.com
919 | theberry.com
920 | movoto.com
921 | emedicinehealth.com
922 | usrfiles.com
923 | trustglobelife.com
924 | taeghyankeedownload.net
925 | timeinc.com
926 | popsci.com
927 | boingboing.net
928 | spotify.com
929 | rxlist.com
930 | secure-paymentscenter.com
931 | joeforamerica.com
932 | femdaily.com
933 | smartstream.tv
934 | aeceiamericanapparel.com
935 | thedenverchannel.com
936 | widgetmakr.com
937 | admtpmp124.com
938 | triviahive.com
939 | universalfreepress.com
940 | servebom.com
941 | ad.net
942 | homeaway.com
943 | adobelogin.com
944 | cox.net
945 | rejuvenation.com
946 | pubgears.com
947 | gop.com
948 | bizpacreview.com
949 | cmoglobal.org
950 | mapsofworld.com
951 | thehollywoodgossip.com
952 | newsok.com
953 | drugstore.com
954 | hobbylobby.com
955 | starwars.com
956 | inbox.com
957 | softwareupdateproduct.com
958 | abc15.com
959 | daechterra.com
960 | mynewsletterbuilder.com
961 | beautynewsnow.com
962 | news-medical.net
963 | homes.com
964 | caring.com
965 | timewarnercable.com
966 | palmbeachpost.com
967 | toptenreviews.com
968 | progressive.com
969 | biotrust.com
970 | eatingwell.com
971 | ballarddesigns.com
972 | mirror.co.uk
973 | statefarm.com
974 | flavorwire.com
975 | princess.com
976 | usccb.org
977 | iecohahasess.com
978 | picreel.com
979 | redflagnews.com
980 | familyshare.com
981 | yardbarker.com
982 | flx10.com
983 | change.org
984 | computerworld.com
985 | ahgieerincondren.com
986 | confirmit.com
987 | footlocker.com
988 | therighttobear.com
989 | potterybarnkids.com.au
990 | mmafighting.com
991 | mode-media.com
992 | vs3.com
993 | prageruniversity.com
994 | wsoctv.com
995 | microcenter.com
996 | songlyrics.com
997 | roowethe-open-mic.com
998 | tellmenow.com
999 | weeklystandard.com
1000 | wal.co
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_top100_old.txt:
--------------------------------------------------------------------------------
1 | www.facebook.com
2 | www.google.com
3 | www.youtube.com
4 | www.yahoo.com
5 | www.baidu.com
6 | www.wikipedia.org
7 | www.live.com
8 | www.amazon.com
9 | www.twitter.com
10 | www.taobao.com
11 | www.google.co.in
12 | www.linkedin.com
13 | www.yahoo.co.jp
14 | www.msn.com
15 | www.yandex.ru
16 | www.ebay.com
17 | www.google.co.jp
18 | www.google.de
19 | www.wordpress.com
20 | www.bing.com
21 | www.google.com.hk
22 | www.vk.com
23 | www.google.co.uk
24 | www.google.fr
25 | www.babylon.com
26 | www.weibo.com
27 | www.microsoft.com
28 | www.tumblr.com
29 | www.googleusercontent.com
30 | www.mail.ru
31 | www.pinterest.com
32 | www.apple.com
33 | www.google.com.br
34 | www.loc.gov
35 | www.PayPal.com
36 | www.google.ru
37 | www.google.es
38 | www.google.it
39 | www.fc2.com
40 | www.blogger.com
41 | www.imdb.com
42 | www.craigslist.org
43 | www.ask.com
44 | www.conduit.com
45 | www.bbc.co.uk
46 | www.go.com
47 | www.amazon.co.jp
48 | www.google.com.mx
49 | www.google.ca
50 | www.amazon.de
51 | www.adobe.com
52 | www.flickr.com
53 | www.avg.com
54 | www.aol.com
55 | www.rakuten.co.jp
56 | www.cnn.com
57 | www.mywebsearch.com
58 | www.ebay.de
59 | www.amazon.co.uk
60 | www.alibaba.com
61 | www.espn.go.com
62 | www.blogspot.in
63 | www.google.com.tr
64 | www.google.co.id
65 | www.instagram.com
66 | www.huffingtonpost.com
67 | www.about.com
68 | www.stackoverflow.com
69 | www.google.com.au
70 | www.livedoor.com
71 | www.ebay.co.uk
72 | www.netflix.com
73 | www.dailymotion.com
74 | www.imgur.com
75 | www.zedo.com
76 | www.google.pl
77 | www.deviantart.com
78 | www.google.nl
79 | www.dropbox.com
80 | www.ameblo.jp
81 | www.themeforest.net
82 | www.weather.com
83 | www.dailymail.co.uk
84 | www.slideshare.net
85 | www.booking.com
86 | www.yelp.com
87 | www.livejournal.com
88 | www.skype.com
89 | www.wikihow.com
90 | www.walmart.com
91 | www.forbes.com
92 | www.starpulse.com
93 | www.sfgate.com
94 | www.toptenvideos.com
95 | www.walgreens.com
96 | www.liveleak.com
97 | www.discover.com
98 | www.mosthappy.com
99 | www.reverbnation.com
100 | www.irs.gov
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_top2000.txt:
--------------------------------------------------------------------------------
1 | google.com
2 | youtube.com
3 | facebook.com
4 | msn.com
5 | twitter.com
6 | bing.com
7 | yelp.com
8 | amazon.com
9 | microsoft.com
10 | answers.com
11 | buzzfeed.com
12 | pinterest.com
13 | live.com
14 | yahoo.com
15 | ebay.com
16 | wikipedia.org
17 | aol.com
18 | wikia.com
19 | paypal.com
20 | ask.com
21 | linkedin.com
22 | about.com
23 | wordpress.com
24 | blogger.com
25 | diply.com
26 | craigslist.org
27 | bustle.com
28 | blogspot.com
29 | urbandictionary.com
30 | whitepages.com
31 | weather.com
32 | walmart.com
33 | mozilla.org
34 | stackexchange.com
35 | adobe.com
36 | wayfair.com
37 | vimeo.com
38 | quizlet.com
39 | sbnation.com
40 | nydailynews.com
41 | nytimes.com
42 | healthline.com
43 | imgur.com
44 | legacy.com
45 | wellsfargo.com
46 | usmagazine.com
47 | dose.com
48 | comcast.net
49 | topix.com
50 | ijreview.com
51 | mapquest.com
52 | godaddy.com
53 | uproxx.com
54 | go.com
55 | babycenter.com
56 | goodreads.com
57 | bizrate.com
58 | southwest.com
59 | refinery29.com
60 | glassdoor.com
61 | 247sports.com
62 | fandango.com
63 | nbcsports.com
64 | imdb.com
65 | instructables.com
66 | theverge.com
67 | thechive.com
68 | chase.com
69 | ibtimes.com
70 | people.com
71 | distractify.com
72 | rare.us
73 | yourdailydish.com
74 | deviantart.com
75 | apple.com
76 | city-data.com
77 | mic.com
78 | vox.com
79 | photobucket.com
80 | att.com
81 | ups.com
82 | hubpages.com
83 | usps.com
84 | al.com
85 | tmz.com
86 | theblaze.com
87 | moviepilot.com
88 | qpolitical.com
89 | rollingstone.com
90 | webmd.com
91 | instagram.com
92 | lifehacker.com
93 | rawstory.com
94 | booking.com
95 | guff.com
96 | ranker.com
97 | zillow.com
98 | yellowpages.com
99 | upworthy.com
100 | americanoverlook.com
101 | gizmodo.com
102 | tripadvisor.com
103 | hp.com
104 | theonion.com
105 | nbcnews.com
106 | thoughtcatalog.com
107 | gfycat.com
108 | nj.com
109 | westernjournalism.com
110 | opposingviews.com
111 | faithtap.com
112 | youngcons.com
113 | thekitchn.com
114 | target.com
115 | dailydot.com
116 | bankofamerica.com
117 | inquisitr.com
118 | bestbuy.com
119 | gawker.com
120 | rottentomatoes.com
121 | myspace.com
122 | homedepot.com
123 | fedex.com
124 | staples.com
125 | eonline.com
126 | dmv.org
127 | etsy.com
128 | salon.com
129 | examiner.com
130 | sears.com
131 | buzzlie.com
132 | reddit.com
133 | cheatsheet.com
134 | deadspin.com
135 | mlb.com
136 | radaronline.com
137 | androidcentral.com
138 | drudgereport.com
139 | merriam-webster.com
140 | mentalfloss.com
141 | windows.com
142 | cnet.com
143 | skype.com
144 | nbc.com
145 | mlive.com
146 | hellogiggles.com
147 | stackoverflow.com
148 | bbb.org
149 | brainjet.com
150 | myrecipes.com
151 | emgn.com
152 | allenbwest.com
153 | brommando.com
154 | cbssports.com
155 | expedia.com
156 | cinemablend.com
157 | cnbc.com
158 | msnbc.com
159 | dailykos.com
160 | liftbump.com
161 | cvs.com
162 | ozy.com
163 | omgfacts.com
164 | cnn.com
165 | fidelity-media.com
166 | newsmax.com
167 | patheos.com
168 | jezebel.com
169 | americanexpress.com
170 | lifescript.com
171 | today.com
172 | powerinbox.com
173 | someecards.com
174 | thehill.com
175 | twitch.tv
176 | howtogeek.com
177 | potterybarn.com
178 | netflix.com
179 | eater.com
180 | internetautoguide.com
181 | macrumors.com
182 | io9.com
183 | evite.com
184 | stripe.com
185 | okmagazine.com
186 | disney.com
187 | costco.com
188 | kohls.com
189 | independent.co.uk
190 | shopping.com
191 | pixable.com
192 | thepoliticalinsider.com
193 | jcpenney.com
194 | overstock.com
195 | lpsnmedia.net
196 | smarter.com
197 | capitalone.com
198 | crowdsocial.com
199 | imore.com
200 | zimbio.com
201 | suggest.com
202 | alibaba.com
203 | timeanddate.com
204 | lowes.com
205 | twentytwowords.com
206 | nih.gov
207 | enotes.com
208 | abcmenorca.net
209 | flickr.com
210 | boxingmoney.com
211 | nesn.com
212 | starpulse.com
213 | sfgate.com
214 | toptenvideos.com
215 | walgreens.com
216 | liveleak.com
217 | cc.com
218 | beenverified.com
219 | turner.com
220 | trulia.com
221 | fidelity.com
222 | oregonlive.com
223 | discover.com
224 | mosthappy.com
225 | travelzoo.com
226 | shmoop.com
227 | americannews.com
228 | dailymail.co.uk
229 | kotaku.com
230 | ulta.com
231 | macys.com
232 | driversupport.com
233 | lifebuzz.com
234 | usaa.com
235 | dailycaller.com
236 | cleveland.com
237 | stylebistro.com
238 | connect5364.com
239 | stuccu.com
240 | office.com
241 | apartmenttherapy.com
242 | ask.fm
243 | ticketmaster.com
244 | verizon.com
245 | break.com
246 | onestore.ms
247 | seriouseats.com
248 | brobible.com
249 | fuel451.com
250 | playboy.com
251 | googletagmanager.com
252 | tiqcdn.com
253 | dummies.com
254 | techradar.com
255 | atemda.com
256 | getitfree.us
257 | creditkarma.com
258 | thinkprogress.org
259 | weather.gov
260 | prisacom.com
261 | odometer.com
262 | theguardian.com
263 | politico.com
264 | softonic.com
265 | southernliving.com
266 | superuser.com
267 | thefederalistpapers.org
268 | ybx.io
269 | n192adserv.com
270 | cabelas.com
271 | minq.com
272 | movable-ink-2183.com
273 | britannica.com
274 | clipd.com
275 | collegehumor.com
276 | deliverimp.com
277 | jalopnik.com
278 | dallasblack.com
279 | getdrivingdirections.co
280 | pbs.org
281 | zoomads.net
282 | cookinglight.com
283 | giphy.com
284 | ironbeast.io
285 | ca.gov
286 | edmunds.com
287 | mobilelikez.com
288 | worldlifestyle.com
289 | coupons.net
290 | drugs.com
291 | pch.com
292 | fixya.com
293 | unsubscribe-4-63.com
294 | adsupply.com
295 | csmonitor.com
296 | gravatar.com
297 | chacha.com
298 | nfl.com
299 | choicehotels.com
300 | washingtontimes.com
301 | thirdpresence.com
302 | indiegogo.com
303 | mbiscotti.com
304 | aarp.org
305 | srvv.co
306 | healthgrades.com
307 | cbsnews.com
308 | synoloads.com
309 | mensfitness.com
310 | foodnetwork.com
311 | ultimate-guitar.com
312 | saturdaydownsouth.com
313 | cloudsponge.com
314 | avclub.com
315 | adserve.io
316 | eleadcrm.com
317 | webroot.com
318 | ajc.com
319 | wsbtv.com
320 | npr.org
321 | medicinenet.com
322 | visualstudio.com
323 | basestyle.org
324 | nola.com
325 | businessinsider.com
326 | newser.com
327 | theatlantic.com
328 | lg.com
329 | wimp.com
330 | vitals.com
331 | bedbathandbeyond.com
332 | startribune.com
333 | yourtango.com
334 | aolsearch.com
335 | idigitaltimes.com
336 | allstateagencies.com
337 | thangasoline.com
338 | citibank.com
339 | jambia.com
340 | telemundo.com
341 | vine.co
342 | swifty.com
343 | carhartt.com
344 | consumerreports.org
345 | mysynchrony.com
346 | nmcdn.us
347 | trustpilot.com
348 | food.com
349 | aliexpress.com
350 | popsugar.com
351 | bandcamp.com
352 | wow.com
353 | iasds01.com
354 | medicalnewstoday.com
355 | envywomen.com
356 | agorafinancial.com
357 | carters.com
358 | rotoworld.com
359 | barnesandnoble.com
360 | newsweek.com
361 | hilton.com
362 | greatschools.org
363 | billoreilly.com
364 | puckermob.com
365 | easybib.com
366 | petfinder.com
367 | livingly.com
368 | analytics-egain.com
369 | unilad.co.uk
370 | usa.gov
371 | grindtv.com
372 | totalrewards.com
373 | wix.com
374 | looper.com
375 | wunderground.com
376 | scout.com
377 | noaa.gov
378 | michaels.com
379 | hotnewhiphop.com
380 | dropbox.com
381 | greatist.com
382 | ebaumsworld.com
383 | americanews.com
384 | jumblejoy.com
385 | united.com
386 | shopify.com
387 | infowars.com
388 | newegg.com
389 | videostat.com
390 | oola.com
391 | tributes.com
392 | googlevideo.com
393 | angieslist.com
394 | fitbit.com
395 | comicbook.com
396 | qvc.com
397 | boomtrain.com
398 | boostable.com
399 | btttag.com
400 | hotjar.com
401 | tvaccessnow.com
402 | videoactivenetwork.tv
403 | interactivebrokers.com
404 | economist.com
405 | indeed.com
406 | citi.com
407 | pagesix.com
408 | archive.org
409 | vennq.com
410 | atomica.com
411 | wnd.com
412 | sharecare.com
413 | viralands.com
414 | shape.com
415 | latimes.com
416 | wikimedia.org
417 | dish.com
418 | infoplease.com
419 | allrecipes.com
420 | mediaite.com
421 | ink361.com
422 | befrugal.com
423 | viewwonder.com
424 | justanswer.com
425 | azurewebsites.net
426 | ksl.com
427 | 247-inc.net
428 | cdnpps.us
429 | 9to5mac.com
430 | kinja-static.com
431 | good.is
432 | xfinity.com
433 | dailysanctuary.com
434 | local.com
435 | smosh.com
436 | tstags.com
437 | gunbroker.com
438 | fishwrapper.com
439 | nationalgeographic.com
440 | siriusxm.com
441 | bravotv.com
442 | officedepot.com
443 | simplyhired.com
444 | wittyfeed.com
445 | sovereignsociety.com
446 | rollbar.com
447 | hsionlineorders.net
448 | bradsdeals.com
449 | malwarebytes.org
450 | womanfreebies.com
451 | force.com
452 | blessings.com
453 | techtimes.com
454 | presscdn.com
455 | reuters.com
456 | usbank.com
457 | patient.info
458 | fanplayr.com
459 | king.com
460 | hulu.com
461 | kabbage.com
462 | thepennyhoarder.com
463 | mrc-isaca.org
464 | howstuffworks.com
465 | phluidmediacrv.net
466 | snapwidget.com
467 | zadsy.com
468 | aabkc.com
469 | clickcertain.com
470 | potterybarnkids.com
471 | microsoftstore.com
472 | peoplefinders.com
473 | biglots.com
474 | inspiremore.com
475 | sumome.com
476 | samsclub.com
477 | roku.com
478 | brainfall.com
479 | polygon.com
480 | usnews.com
481 | scribd.com
482 | nile.works
483 | kbb.com
484 | experienceproject.com
485 | cbs.com
486 | unsubjn67.com
487 | discovercard.com
488 | ssa.gov
489 | epsilon.com
490 | kompasads.net
491 | nhl.com
492 | charter.net
493 | freeskreen.com
494 | groceryserver.com
495 | hitfix.com
496 | wgntv.com
497 | shareably.net
498 | education.com
499 | allmenus.com
500 | kaiserpermanente.org
501 | vantagemedia.com
502 | tribuneinteractive.com
503 | syracuse.com
504 | safeunsubscribing.com
505 | rantsports.com
506 | knowyourmeme.com
507 | safeway.com
508 | pressganey.com
509 | purplemath.com
510 | kmart.com
511 | townhall.com
512 | straightdope.com
513 | democrats.org
514 | lifedaily.com
515 | miamiherald.com
516 | nationalreview.com
517 | isidewith.com
518 | slideshare.net
519 | timeout.com
520 | lonny.com
521 | toofab.com
522 | elephantjournal.com
523 | gettyimages.com
524 | gofundme.com
525 | snopes.com
526 | styleads.de
527 | palmbeachletter.com
528 | collegespun.com
529 | chicagotribune.com
530 | actblue.com
531 | teracreative.com
532 | matadornetwork.com
533 | llbean.com
534 | irs.gov
535 | whatculture.com
536 | protected-payment-solutions.com
537 | wn.com
538 | mytheresa.com
539 | retailmenot.com
540 | tracfone.com
541 | pitchfork.com
542 | vanguard.com
543 | studyblue.com
544 | list-manage2.com
545 | dorkly.com
546 | liftable.com
547 | soma.com
548 | spokeo.com
549 | niche.com
550 | randpaul.com
551 | seventhavenue.com
552 | pressroomvip.com
553 | palmbeachgroup.com
554 | caringbridge.org
555 | blogher.org
556 | xwebseo.com
557 | whatbrowser.org
558 | flightaware.com
559 | uberhavoc.com
560 | priceline.com
561 | marriott.com
562 | grainger.com
563 | helzberg.com
564 | dunzo.net
565 | chwplan.com
566 | ato.mx
567 | alternet.org
568 | afftrackr.com
569 | thegrio.com
570 | myheritage.com
571 | wikihow.com
572 | theclickcheck.com
573 | listverse.com
574 | food4patriots.com
575 | jotform.com
576 | directv.com
577 | seattletimes.com
578 | eclinicalweb.com
579 | ancestry.com
580 | tvguide.com
581 | salsalabs.com
582 | homeadvisor.com
583 | videoswag.tv
584 | predicta.net
585 | sportingnews.com
586 | hollywoodreporter.com
587 | smithsonianmag.com
588 | socialchique.com
589 | thenextweb.com
590 | talkingpointsmemo.com
591 | mcafee.com
592 | therightways.com
593 | nextdoor.com
594 | manta.com
595 | sciencealert.com
596 | findagrave.com
597 | wral.com
598 | muscleandfitness.com
599 | delta.com
600 | blair.com
601 | pennlive.com
602 | carambo.la
603 | autotrader.com
604 | medicaldaily.com
605 | algebra.com
606 | hgtv.com
607 | astrology.com
608 | menards.com
609 | intuit.com
610 | eelaerankbuilder.com
611 | medallia.com
612 | egokick.com
613 | encyclopedia.com
614 | admtpmp123.com
615 | therecipespage.com
616 | rewardzoneusa.com
617 | mercurynews.com
618 | fiftyone.com
619 | holidayinn.com
620 | patch.com
621 | pastemagazine.com
622 | autoblog.com
623 | hiexpress.com
624 | h-cdn.co
625 | hotels.com
626 | eastbay.com
627 | kinja.com
628 | visa.com
629 | likesgag.com
630 | myway.com
631 | pubmine.com
632 | buzzlamp.com
633 | nationalmssociety.org
634 | wildtangent.com
635 | faithit.com
636 | travelsmith.com
637 | thepostgame.com
638 | kiplinger.com
639 | campaign-archive1.com
640 | costco-static.com
641 | groupon.com
642 | sciencedaily.com
643 | nasa.gov
644 | femmezine.com
645 | hercampus.com
646 | mashable.com
647 | gothamist.com
648 | warbirdinformationexchange.org
649 | bing-int.com
650 | beauty.com
651 | gurl.com
652 | bp.blogspot.com
653 | 411.com
654 | tunein.com
655 | iemooentypo.com
656 | ordergroove.com
657 | denverpost.com
658 | rev2pub.com
659 | aaa.com
660 | deseretnews.com
661 | outlook.com
662 | 123greetings.com
663 | cheezburger.com
664 | aa.com
665 | ppjol.com
666 | crocs.com
667 | comcast.com
668 | lakeside.com
669 | heritage.org
670 | fold3.com
671 | lyricsmode.com
672 | fansided.com
673 | cars.com
674 | experian.com
675 | cbc.ca
676 | metafilter.com
677 | attn.com
678 | kaspersky.com
679 | news-selfreliancecentral.com
680 | va.gov
681 | google.ca
682 | edigitalsurvey.com
683 | curbed.com
684 | po.st
685 | oprah.com
686 | ft.com
687 | washingtonexaminer.com
688 | modemediacorp.com
689 | gradesaver.com
690 | mommypage.com
691 | bleacherreport.com
692 | newyorker.com
693 | kfor.com
694 | instantcheckmate.com
695 | exclusivesandmore.com
696 | tickld.com
697 | optout-mzkl.net
698 | gemius.pl
699 | mnn.com
700 | bhphotovideo.com
701 | gannett-cdn.com
702 | foxbusiness.com
703 | ford.com
704 | librato.com
705 | vrbo.com
706 | collegeconfidential.com
707 | curiyo.com
708 | joann.com
709 | mommybase.com
710 | autozone.com
711 | lfb.org
712 | flipp.com
713 | queerty.com
714 | bloxcms.com
715 | christianbook.com
716 | trivago.com
717 | clicksvenue.com
718 | thinkgeek.com
719 | amarktflow.com
720 | backpage.com
721 | spnccrzone.com
722 | rantlifestyle.com
723 | securepaymentsnetwork.com
724 | beliefnet.com
725 | alot.com
726 | tigerdirect.com
727 | socialsecurity.gov
728 | cvent.com
729 | mercola.com
730 | funnyordie.com
731 | hiddenplaybook.com
732 | pgatour.com
733 | pof.com
734 | webbyads.net
735 | eventbrite.com
736 | leadpages.net
737 | globalgrind.com
738 | rantchic.com
739 | c-span.org
740 | masslive.com
741 | redbox.com
742 | mrctv.org
743 | fodors.com
744 | wehavetheperfectlawn.com
745 | azlyrics.com
746 | espn.com
747 | awesomeom.com
748 | motortrend.com
749 | kansascity.com
750 | fareportal.com
751 | morningstar.com
752 | travelocity.com
753 | toysrus.com
754 | speedfixtool.com
755 | traffichunt.com
756 | forsalebyowner.com
757 | ihg.com
758 | williams-sonoma.com
759 | idistracted.net
760 | bencarson.com
761 | thefreedictionary.com
762 | tasteofhome.com
763 | redfin.com
764 | senate.gov
765 | nmhfiles.com
766 | everydayhealth.com
767 | zdnet.com
768 | kroger.com
769 | tomshardware.com
770 | thepetitionsite.com
771 | logentries.com
772 | retailpromotionsonline.com
773 | thewebtrovert.com
774 | affiliatetechnology.com
775 | kirotv.com
776 | nflxext.com
777 | avast.com
778 | firefox.com
779 | survivetheenddays.com
780 | microsofttranslator.com
781 | nameberry.com
782 | ukiewzhangzhny1.net
783 | wired.com
784 | careerbuilder.com
785 | getit-free.us
786 | artofmanliness.com
787 | nps.gov
788 | horoscope.com
789 | ty7news.com
790 | alicdn.com
791 | indiatimes.com
792 | peisedata.net
793 | ohciybharatinfoservice.net
794 | evbuc.com
795 | amazon.ca
796 | sfglobe.com
797 | ebay.ca
798 | businessdictionary.com
799 | netapplications.com
800 | loccitane.com
801 | observer.com
802 | thegatewaypundit.com
803 | moveon.org
804 | mailmunch.co
805 | racked.com
806 | dealer.com
807 | swoop.com
808 | t-mobile.com
809 | connatix.com
810 | newsmemory.com
811 | holaefsdata.com
812 | potterybarn.com.au
813 | mydas.mobi
814 | zappos.com
815 | adamoads.com
816 | cargurus.com
817 | shopyourway.com
818 | house.gov
819 | cdn77.org
820 | babble.com
821 | sacbee.com
822 | fixthisnation.com
823 | meetup.com
824 | panerabread.com
825 | bookingbuddy.com
826 | cdc.gov
827 | koeghmixi-birthday.net
828 | pga.com
829 | cybersource.com
830 | libsyn.com
831 | nordstrom.com
832 | outdoorchannel.com
833 | doodle.com
834 | biblegateway.com
835 | dailysignal.com
836 | orbitz.com
837 | weekendcollective.com
838 | optout-fchd.net
839 | mmamania.com
840 | politifact.com
841 | at2solution.com
842 | cnsnews.com
843 | hsselite.com
844 | firsttoknow.com
845 | epicurious.com
846 | wa.gov
847 | ticketmaster.ca
848 | ookla.com
849 | sprint.com
850 | followmyhealth.com
851 | filehippo.com
852 | transsender.net
853 | clickhole.com
854 | optout-zqff.net
855 | caesars.com
856 | ibm.com
857 | fortune.com
858 | revolvermaps.com
859 | laweekly.com
860 | 120sports.com
861 | dineouttonight.net
862 | ooquaapbin.net
863 | latinpost.com
864 | itsup.com
865 | charlotteobserver.com
866 | hefty.co
867 | ongeedodirnime.net
868 | ox-dyp.com
869 | workingmother.com
870 | research.net
871 | wetransfer.com
872 | express-scripts.com
873 | fame10.com
874 | mydisneyresorts.com
875 | onegoodthingbyjillee.com
876 | macmillandictionary.com
877 | informationvine.com
878 | canon.com
879 | box.com
880 | honda.com
881 | parade.com
882 | bloglovin.com
883 | wxyz.com
884 | hearinglossreversed.net
885 | gomerblog.com
886 | travelnevada.com
887 | twitchy.com
888 | 4shared.com
889 | zazzle.com
890 | pcgamer.com
891 | mysimon.com
892 | thegrommet.com
893 | troweprice.com
894 | anv.bz
895 | vistaprint.com
896 | ancestrydata.com
897 | lanebryant.com
898 | ashleyrnadison.com
899 | candlewoodsuites.com
900 | fieldandstream.com
901 | rr.com
902 | hiegowebcode.net
903 | resourcedepot.info
904 | wftv.com
905 | erroranswers.com
906 | browsehappy.com
907 | hsn.com
908 | softcoin.com
909 | si.com
910 | toprightnews.com
911 | lightboxcdn.com
912 | olivegarden.com
913 | voxmedia.com
914 | wpxi.com
915 | demandforce.com
916 | familyhandyman.com
917 | ikea.com
918 | intellicast.com
919 | theberry.com
920 | movoto.com
921 | emedicinehealth.com
922 | usrfiles.com
923 | trustglobelife.com
924 | taeghyankeedownload.net
925 | timeinc.com
926 | popsci.com
927 | boingboing.net
928 | spotify.com
929 | rxlist.com
930 | secure-paymentscenter.com
931 | joeforamerica.com
932 | femdaily.com
933 | smartstream.tv
934 | aeceiamericanapparel.com
935 | thedenverchannel.com
936 | widgetmakr.com
937 | admtpmp124.com
938 | triviahive.com
939 | universalfreepress.com
940 | servebom.com
941 | ad.net
942 | homeaway.com
943 | adobelogin.com
944 | cox.net
945 | rejuvenation.com
946 | pubgears.com
947 | gop.com
948 | bizpacreview.com
949 | cmoglobal.org
950 | mapsofworld.com
951 | thehollywoodgossip.com
952 | newsok.com
953 | drugstore.com
954 | hobbylobby.com
955 | starwars.com
956 | inbox.com
957 | softwareupdateproduct.com
958 | abc15.com
959 | daechterra.com
960 | mynewsletterbuilder.com
961 | beautynewsnow.com
962 | news-medical.net
963 | homes.com
964 | caring.com
965 | timewarnercable.com
966 | palmbeachpost.com
967 | toptenreviews.com
968 | progressive.com
969 | biotrust.com
970 | eatingwell.com
971 | ballarddesigns.com
972 | mirror.co.uk
973 | statefarm.com
974 | flavorwire.com
975 | princess.com
976 | usccb.org
977 | iecohahasess.com
978 | picreel.com
979 | redflagnews.com
980 | familyshare.com
981 | yardbarker.com
982 | flx10.com
983 | change.org
984 | computerworld.com
985 | ahgieerincondren.com
986 | confirmit.com
987 | footlocker.com
988 | therighttobear.com
989 | potterybarnkids.com.au
990 | mmafighting.com
991 | mode-media.com
992 | vs3.com
993 | prageruniversity.com
994 | wsoctv.com
995 | microcenter.com
996 | songlyrics.com
997 | roowethe-open-mic.com
998 | tellmenow.com
999 | weeklystandard.com
1000 | wal.co
1001 | rightwingnews.com
1002 | wtop.com
1003 | westelm.com.au
1004 | chevrolet.com
1005 | jewsnews.co.il
1006 | arcgis.com
1007 | inkedmag.com
1008 | peoplestylewatch.com
1009 | superfatburningfats.com
1010 | afasv.net
1011 | rometime.net
1012 | wsdinsider.com
1013 | epson.com
1014 | myfitnesspal.com
1015 | dickssportinggoods.com
1016 | cbn.com
1017 | todaysinfo.net
1018 | zerohedge.com
1019 | compuwareapmaas.com
1020 | superpages.com
1021 | zenfolio.com
1022 | todayslifestyle.com
1023 | lightboxnodejs.azurewebsites.net
1024 | aurorasuite.com
1025 | massrel.io
1026 | easton.com
1027 | enstarz.com
1028 | comicbookresources.com
1029 | mbww.com
1030 | petco.com
1031 | getpocket.com
1032 | adseekmedia.com
1033 | craftsy.com
1034 | alaskaair.com
1035 | caranddriver.com
1036 | safedownloadsrus142.com
1037 | cxpublic.com
1038 | boreburn.com
1039 | jellyshare.com
1040 | tinarichardsrealtor.com
1041 | moneywise411.com
1042 | petapixel.com
1043 | tagged.com
1044 | globaltechadvice.com
1045 | unsubbr.com
1046 | vizury.com
1047 | com-systm.info
1048 | nametests.com
1049 | adp.com
1050 | phys.org
1051 | convergetrack.com
1052 | familysearch.org
1053 | windowscentral.com
1054 | queryly.com
1055 | ninewest.com
1056 | cheapoair.com
1057 | womanista.com
1058 | cruisecritic.com
1059 | gw-3d.com
1060 | talbots.com
1061 | yummly.com
1062 | tampabay.com
1063 | exchangesolutions.com
1064 | starcasm.net
1065 | leadid.com
1066 | yougov.com
1067 | ovh.net
1068 | cafemomstatic.com
1069 | drweil.com
1070 | kennethcole.com
1071 | zap2it.com
1072 | augur.io
1073 | teboodcincome.com
1074 | discoverexotic.com
1075 | telldc.com
1076 | elle.com
1077 | nextadvisor.com
1078 | thecustomredirect.net
1079 | searchall.com
1080 | frcaction.org
1081 | dsw.com
1082 | frys.com
1083 | designntrend.com
1084 | usatoday.com
1085 | eehuuchohanz.net
1086 | tinypic.com
1087 | securejump.net
1088 | hookeaffiliatebible.net
1089 | greatergood.com
1090 | healthcentral.com
1091 | chow.com
1092 | atlasobscura.com
1093 | tiphero.com
1094 | carid.com
1095 | bilinmedia.net
1096 | wiredforchange.com
1097 | credomobile.com
1098 | supertechconsult.com
1099 | yuku.com
1100 | spoonuniversity.com
1101 | mademan.com
1102 | newsbusters.org
1103 | qq.com
1104 | toshiba.com
1105 | alwaysbestresults.com
1106 | liquidustv.com
1107 | theadvocate.com
1108 | nba.com
1109 | fuse.tv
1110 | gamefaqs.com
1111 | moviefone.com
1112 | marketo.com
1113 | lendingtree.com
1114 | gossipbrunch.com
1115 | familychristianmail.com
1116 | bzgint.com
1117 | studentdoctor.net
1118 | history.com
1119 | wellness.com
1120 | liereylighting.net
1121 | hayneedle.com
1122 | mode.com
1123 | surveysamplesavings.com
1124 | aoroovmex.com
1125 | libertymutual.com
1126 | survivallife.com
1127 | newsobserver.com
1128 | rtm.com
1129 | webyclip.com
1130 | wingeflycell.net
1131 | thenation.com
1132 | onenewsnow.com
1133 | girlstalkinsmack.com
1134 | symantec.com
1135 | nrcc.org
1136 | gawker-labs.com
1137 | lenovo.com
1138 | meetme.com
1139 | hotwire.com
1140 | sportsmansguide.com
1141 | thestate.com
1142 | hillaryclinton.com
1143 | royalcaribbean.com
1144 | blackdoctor.org
1145 | opaengetpaidsurveys.com
1146 | phluidmedia.net
1147 | geico.com
1148 | jet.com
1149 | newspapers.com
1150 | mindplotter.com
1151 | outsideonline.com
1152 | ruinglampitrotan.com
1153 | silive.com
1154 | yourbiggestagetell.com
1155 | oracle.com
1156 | industrybrains.com
1157 | bookrags.com
1158 | imagebam.com
1159 | ohteisefasirmen.net
1160 | euquuherbal-nutrition.net
1161 | milb.com
1162 | virginia.gov
1163 | tomsguide.com
1164 | whosay.com
1165 | dailysnark.com
1166 | cbslocal.com
1167 | ads-front.com
1168 | optout-wcjl.net
1169 | jwplatform.com
1170 | tout.com
1171 | luckyorange.com
1172 | ncl.com
1173 | medscape.com
1174 | rickeysmileymorningshow.com
1175 | bostonglobe.com
1176 | askubuntu.com
1177 | hide-my-wallet-now.com
1178 | reason.com
1179 | onlinechic.com
1180 | boots.com
1181 | civicplus.com
1182 | pizzahut.com
1183 | blackoutusa.org
1184 | optout-sclp.net
1185 | formstack.com
1186 | compare99.com
1187 | homerunmonkey.com
1188 | naturalnews.com
1189 | sneakernews.com
1190 | nandomedia.com
1191 | usda.gov
1192 | easy-autoquotes.com
1193 | 247wallst.com
1194 | penfed.org
1195 | timetobreak.com
1196 | whitehouse.gov
1197 | dfas.mil
1198 | eviesays.com
1199 | baidu.com
1200 | 23andme.com
1201 | lovebscott.com
1202 | siecacutmirchi.net
1203 | thaidbooster-tv.com
1204 | extras-americanlibertypac.com
1205 | thetruthaboutguns.com
1206 | serverfault.com
1207 | cafepress.com
1208 | smilereminder.com
1209 | therightscoop.com
1210 | rubytuesdayrestaurants.com
1211 | consumerinput.com
1212 | clickadu.com
1213 | desk.com
1214 | filmon.com
1215 | xaghophpsupport.net
1216 | mgmresorts.com
1217 | rantpets.com
1218 | bloodyelbow.com
1219 | 7dayfitness.com
1220 | philly.com
1221 | hiphopdx.com
1222 | versahq.com
1223 | rocketway.net
1224 | treato.com
1225 | ibtracking.com
1226 | pillsbury.com
1227 | ausom.com
1228 | abebooks.com
1229 | weddingwire.com
1230 | squareup.com
1231 | afh1.net
1232 | adbrn.com
1233 | kqed.org
1234 | bonnerandpartners.com
1235 | wicaebestfedbooks.net
1236 | apxtarget.com
1237 | recruitics.com
1238 | hrblock.com
1239 | usoovautocatch.net
1240 | oxygen.com
1241 | midasplayer.com
1242 | reegiprepperwebsite.net
1243 | hngn.com
1244 | saveur.com
1245 | medixselect.com
1246 | sfbfat.com
1247 | consciouslyenlightened.com
1248 | bhg.com
1249 | fly.com
1250 | fool.com
1251 | icontact.com
1252 | 6abc.com
1253 | geekwire.com
1254 | mpeasylink.com
1255 | thingsremembered.com
1256 | carcarekiosk.com
1257 | treehugger.com
1258 | subway.com
1259 | wellnessjunky.com
1260 | truthfinder.com
1261 | ayaeteblastengine.net
1262 | targetedvictory.com
1263 | bizjournals.com
1264 | zndsk.com
1265 | aemaicompletelycoupons.net
1266 | oolavmatthewsvolvosite.com
1267 | krogerfeedback.com
1268 | ml.com
1269 | chicksontheright.com
1270 | localweatherforecast.co
1271 | vitacost.com
1272 | landwatch.com
1273 | si.edu
1274 | pages03.net
1275 | active.com
1276 | slader.com
1277 | prepped.com
1278 | adgearmedia.com
1279 | ftop.ru
1280 | petsmart.com
1281 | laist.com
1282 | navbug.com
1283 | gallup.com
1284 | coupons.com
1285 | babiesrus.com
1286 | memes.com
1287 | rockauto.com
1288 | iconosquare.com
1289 | thebrofessional.net
1290 | eengicutedirectory.net
1291 | pjmedia.com
1292 | redirectyourcarbs.com
1293 | popularmechanics.com
1294 | costcotravel.com
1295 | sammydress.com
1296 | discovery.com
1297 | tusualagranepoca.net
1298 | thewirecutter.com
1299 | charismanews.com
1300 | fatdiminisher.com
1301 | toyota.com
1302 | barnebys.com
1303 | wearethemighty.com
1304 | hotwirestatic.com
1305 | bleedinggreennation.com
1306 | medixselect.tv
1307 | thecleverowl.com
1308 | livescience.com
1309 | puritan.com
1310 | advocate.com
1311 | mediadirects.com
1312 | ohdeidefencetalk.com
1313 | justuno.com
1314 | viator.com
1315 | sciencebuddies.org
1316 | sony.com
1317 | lowermybills.com
1318 | earthlink.net
1319 | anm.co.uk
1320 | woobox.com
1321 | milkandcookies.com
1322 | star-telegram.com
1323 | gethardagain.com
1324 | webcrawler.com
1325 | songmeanings.com
1326 | genealogy.com
1327 | newrepublic.com
1328 | broadwayworld.com
1329 | factmonster.com
1330 | todayifoundout.com
1331 | midwayusa.com
1332 | leadpages.co
1333 | signforgood.com
1334 | thefiscaltimes.com
1335 | rightnowtech.com
1336 | engageya.com
1337 | windowstechies.com
1338 | ellentv.com
1339 | eechatapeciarnia.net
1340 | animalplanet.com
1341 | loc.gov
1342 | schwab.com
1343 | lds.org
1344 | lahchbutyk.com
1345 | storify.com
1346 | youmail.com
1347 | metropcs.com
1348 | policeone.com
1349 | moneymappress.com
1350 | unfriendtracker.com
1351 | fourleggedguru.com
1352 | terraclicks.com
1353 | tmosocial.com
1354 | cancer.org
1355 | bodybuilding.com
1356 | ziplist.com
1357 | reverbnation.com
1358 | standunited.org
1359 | popcash.net
1360 | softwareprojects.com
1361 | westword.com
1362 | insidegov.com
1363 | bestdeals.today
1364 | bahshmastiandhra.com
1365 | optout-wghd.net
1366 | aftomedia.com
1367 | foosifilmycz.com
1368 | headlinepolitics.com
1369 | blog.com
1370 | adfront.org
1371 | decider.com
1372 | videoamp.com
1373 | mail-unsub.net
1374 | humanapharmacy.com
1375 | quoohtheory11.com
1376 | gap.com
1377 | twcc.com
1378 | steamcommunity.com
1379 | richmond.com
1380 | brightcove.net
1381 | gocomics.com
1382 | komando.com
1383 | blacksportsonline.com
1384 | cdnplanet.com
1385 | rankingsandreviews.com
1386 | omaha.com
1387 | clickfuse.com
1388 | dntrax.com
1389 | tracfonewireless.com
1390 | theoatmeal.com
1391 | iqueekpt-news.com
1392 | softonicads.com
1393 | signupgenius.com
1394 | cornell.edu
1395 | bluemountain.com
1396 | houstonpress.com
1397 | cox.com
1398 | fixnow24.com
1399 | dashofwellness.com
1400 | pmclicks.com
1401 | nanorep.com
1402 | outback.com
1403 | mdmexclusives.com
1404 | abcactionnews.com
1405 | steampowered.com
1406 | actionnetwork.org
1407 | manta-r3.com
1408 | bargainlifestyle.com
1409 | qvcchat.com
1410 | votevets.org
1411 | curejoy.com
1412 | eivahdirectoryfree.com
1413 | tulsaworld.com
1414 | tag4arm.com
1415 | wwwnj.com
1416 | healthrevelations.net
1417 | ovguide.com
1418 | godiva.com
1419 | jetsetter.com
1420 | shopsocially.com
1421 | vid2play.com
1422 | fitpregnancy.com
1423 | metmuseum.org
1424 | shebudgets.com
1425 | bettycrocker.com
1426 | ltdcommodities.com
1427 | 24-finances-news.com
1428 | ladyfootlocker.com
1429 | diabetes.org
1430 | radio.com
1431 | jewishjournal.com
1432 | humana.com
1433 | clevelandclinic.org
1434 | rei.com
1435 | mycokerewards.com
1436 | suntrust.com
1437 | 6pm.com
1438 | ghmediatrending.com
1439 | sessionm.com
1440 | aedeekooldesignmaker.com
1441 | sellitpage.com
1442 | hemmings.com
1443 | goodrx.com
1444 | 800notes.com
1445 | picmonkey.com
1446 | dunhilltraveldeals.com
1447 | pogo.com
1448 | hotrod.com
1449 | meijer.com
1450 | hihizrmctalk.com
1451 | upsocl.com
1452 | inflexwetrust.com
1453 | ronpaulupdate.com
1454 | asus.com
1455 | iathuyoutube.net
1456 | calottery.com
1457 | chatid.com
1458 | hotties-finder.com
1459 | ecn5.com
1460 | ticketm.net
1461 | brothersoft.com
1462 | zdbb.net
1463 | goodmenproject.com
1464 | classiccars.com
1465 | snapfish.com
1466 | ny.gov
1467 | pulptastic.com
1468 | clashdaily.com
1469 | engagesciences.com
1470 | hanes.com
1471 | iahohlibrarycatalog.com
1472 | izito.com
1473 | accesshollywood.com
1474 | latintimes.com
1475 | landofnod.com
1476 | printfriendly.com
1477 | ad-back.net
1478 | rqqpd.com
1479 | gm.com
1480 | wonderhowto.com
1481 | barclaycardus.com
1482 | acehardware.com
1483 | starbucks.com
1484 | optimum.net
1485 | tcm.com
1486 | hautespotter.com
1487 | crosswordtracker.com
1488 | thefader.com
1489 | sun-sentinel.com
1490 | definefood.com
1491 | rogerebert.com
1492 | subhq.net
1493 | kicksonfire.com
1494 | nexage.com
1495 | birchgold.com
1496 | bronto.com
1497 | wiktionary.org
1498 | auto-price-finder.com
1499 | mailicm.com
1500 | freeembroiderystuff.com
1501 | zapmeta.com
1502 | abctrcker.com
1503 | loading-delivery1.com
1504 | ning.com
1505 | pbworks.com
1506 | dillards.com
1507 | wine-searcher.com
1508 | eishechick.net
1509 | greenvillegazette.com
1510 | lkqd.net
1511 | 100percentfedup.com
1512 | mileskimball.com
1513 | wcpo.com
1514 | lininteractive.com
1515 | glennbeck.com
1516 | outdoorlife.com
1517 | myshopify.com
1518 | admatic.com.tr
1519 | crateandbarrel.com
1520 | shopstyle.com
1521 | businessdailygroup.com
1522 | mayoclinic.org
1523 | goodgamestudios.com
1524 | newsnet5.com
1525 | realsimple.com
1526 | clktraker.com
1527 | panasonic.com
1528 | draxe.com
1529 | jsonline.com
1530 | geeksquad.com
1531 | iejaharreyadi.net
1532 | keigotmtforum.com
1533 | kelloggsfamilyrewards.com
1534 | entrepreneur.com
1535 | jumptime.com
1536 | frtya.com
1537 | sparkpeople.com
1538 | zoominfo.com
1539 | shpg.org
1540 | wfla.com
1541 | in.gov
1542 | instaflex.com
1543 | campusriot.com
1544 | mydentalvisit.com
1545 | nputgaming.com
1546 | estately.com
1547 | paltalk.com
1548 | dccc.org
1549 | regions.com
1550 | planetminecraft.com
1551 | viralworld.net
1552 | jetblue.com
1553 | t-analytics.com
1554 | mshare.net
1555 | garmin.com
1556 | northerntool.com
1557 | sumologic.com
1558 | peekyou.com
1559 | email-cooking.com
1560 | psu.edu
1561 | starwoodhotels.com
1562 | franklinprosperityreport.com
1563 | theedmiracle.org
1564 | pinimg.com
1565 | onlyinyourstate.com
1566 | moneysavingmom.com
1567 | rtbsrv.com
1568 | ultracart.com
1569 | guim.co.uk
1570 | tlscdn.com
1571 | e-rewards.com
1572 | readysettrek.com
1573 | everquote.com
1574 | office365.com
1575 | paekogameqq.net
1576 | fda.gov
1577 | musictimes.com
1578 | listmanager.co
1579 | flightstats.com
1580 | miaminewtimes.com
1581 | researchnow.com
1582 | finecooking.com
1583 | kayak.com
1584 | out.com
1585 | imagevenue.com
1586 | mrconservative.com
1587 | sunset.com
1588 | janraincapture.com
1589 | focusonthefamily.com
1590 | ed.gov
1591 | bigfishgames.com
1592 | 53.com
1593 | adinfinity.com.au
1594 | pier1.com
1595 | unsub-getitfree.com
1596 | movies.com
1597 | spectrum.com
1598 | qmerce.com
1599 | vanityfair.com
1600 | jungleheart.com
1601 | carthrottle.com
1602 | ziffdavis.com
1603 | bttmec.com
1604 | thescene.com
1605 | teach12.net
1606 | frc.org
1607 | ip-pool.com
1608 | cityspark.com
1609 | anvato.com
1610 | mailchimp.com
1611 | slimail.com
1612 | hotair.com
1613 | wustl.edu
1614 | nascar.com
1615 | solarsteampower.com
1616 | whio.com
1617 | applebees.com
1618 | lotterypost.com
1619 | awesomepethealth.com
1620 | symptomfind.com
1621 | theglobeandmail.com
1622 | everythingfinanceblog.com
1623 | paulaschoice.com
1624 | intelius.com
1625 | embedly.com
1626 | care2.com
1627 | thepioneerwoman.com
1628 | tbo.com
1629 | schoolwires.com
1630 | rsys2.net
1631 | overdrive.com
1632 | kickstarter.com
1633 | thohfhotels.com
1634 | puzzlejet.com
1635 | zacks.com
1636 | 1stdibs.com
1637 | recode.net
1638 | optumrx.com
1639 | mcclatchydc.com
1640 | ucomparehealthcare.com
1641 | mikle.com
1642 | carmax.com
1643 | diynetwork.com
1644 | mail.ru
1645 | nextmd.com
1646 | lehighvalleylive.com
1647 | playster.com
1648 | ienguthevictoriaadvocate.net
1649 | wkyt.com
1650 | medicare.gov
1651 | thelightvegas.com
1652 | boostbrief.net
1653 | satmetrix.com
1654 | cooks.com
1655 | backyardchickens.com
1656 | apartmentguide.com
1657 | undergradsuccess.com
1658 | pinchofyum.com
1659 | salememail.net
1660 | quora.com
1661 | msn.net
1662 | dominos.com
1663 | manualslib.com
1664 | forwardprogressives.com
1665 | eenebpersonalizaroblogger.net
1666 | primalhealthcrm.com
1667 | donotcall.gov
1668 | hoptopboy.com
1669 | ovaivtravelscout24.com
1670 | tomtom.com
1671 | asdfzxcv1312.com
1672 | kentucky.com
1673 | healthnewsadvice.com
1674 | tarot.com
1675 | familyeducation.com
1676 | wsj.net
1677 | clickpapa.com
1678 | oonoyvestidadenoiva.com
1679 | aokeeauxiliar-de-enfermeria.com
1680 | thegameraccess.com
1681 | etahub.com
1682 | americanpatriotdaily.com
1683 | ballotpedia.org
1684 | silkroad.com
1685 | yandex.ru
1686 | vacationstogo.com
1687 | wikidot.com
1688 | revee.com
1689 | wizzed.com
1690 | dealzingo.com
1691 | jobdiagnosis.com
1692 | crunchbase.com
1693 | car-research.com
1694 | provide-savings-unsubs.com
1695 | nhs.uk
1696 | altpress.com
1697 | diedieverydayonsales.net
1698 | hipmunk.com
1699 | celebritycruises.com
1700 | fi.com
1701 | ranthollywood.com
1702 | campaignsolutions.com
1703 | army.mil
1704 | adweek.com
1705 | bridaltune.com
1706 | sportsauthority.com
1707 | stophillarypac.org
1708 | stringsgenerator.com
1709 | pressdemocrat.com
1710 | localglamour.com
1711 | wannasmile.com
1712 | bjs.com
1713 | amazon.co.uk
1714 | what-character-are-you.com
1715 | doctoroz.com
1716 | iobit.com
1717 | addapinch.com
1718 | cqrcengage.com
1719 | tv.com
1720 | craigslist.ca
1721 | aiquicitycell.net
1722 | daedafreeride.net
1723 | iethociadosdescontos.com
1724 | moviecli.ps
1725 | usgs.gov
1726 | ameritrade.com
1727 | ctpost.com
1728 | theunknownsmovie.com
1729 | stubhub.com
1730 | state.gov
1731 | payless.com
1732 | 123rf.com
1733 | adorama.com
1734 | harrys.com
1735 | mountainhardwear.com
1736 | gamerang.net
1737 | rhl.org
1738 | roeghnbs-system.com
1739 | liquor.com
1740 | marijuana.com
1741 | webshots.com
1742 | fundsxpress.com
1743 | relish.com
1744 | nasdaq.com
1745 | proflowers.com
1746 | gomumsy.com
1747 | static-homes.com
1748 | arcgisonline.com
1749 | doityourself.com
1750 | verticalresponse.com
1751 | smartbrief.com
1752 | billskhakis.com
1753 | norton.com
1754 | surveymyopinion.com
1755 | searchresultsemporium.com
1756 | ebay.co.uk
1757 | redlobster.com
1758 | hongkiat.com
1759 | newsday.com
1760 | sharefile.com
1761 | cruisecontroldiet.com
1762 | ioffer.com
1763 | speedway.com
1764 | 8tracks.com
1765 | parentsociety.com
1766 | trk4.com
1767 | disneyjunior.com
1768 | sorel.com
1769 | bestplaces.net
1770 | dreamstime.com
1771 | advconversion.com
1772 | harp-approvals.org
1773 | newson6.com
1774 | lookmagazine.us
1775 | zonealarm.com
1776 | creativebloq.com
1777 | icloud.com
1778 | thestranger.com
1779 | reshareworthy.com
1780 | apollocdn.com
1781 | evitecdn.com
1782 | grocerycouponnetwork.com
1783 | anguoanti-malware.net
1784 | sympoz.com
1785 | aspca.org
1786 | disneybaby.com
1787 | shutterstock.com
1788 | ziprecruiter.com
1789 | worldwiderecipe.com
1790 | 1funny.com
1791 | goldstar.com
1792 | blabbermouth.net
1793 | chost2.com
1794 | topfashionwear.com
1795 | discountdrivers.com
1796 | rushlimbaugh.com
1797 | flexitive.com
1798 | peaklife.com
1799 | appleinsider.com
1800 | advancedpccare.com
1801 | maxpreps.com
1802 | themarysue.com
1803 | invoca.net
1804 | latambrokers.com
1805 | tvfanatic.com
1806 | 10news.com
1807 | womansday.com
1808 | askthis.org
1809 | maxworkouts.com
1810 | truthorfiction.com
1811 | simpleoffgridsystem.com
1812 | drawastickman.com
1813 | bufferapp.com
1814 | backgroundalert.com
1815 | mobiondeal.com
1816 | aimediagroup.com
1817 | 90min.com
1818 | dunelondon.com
1819 | appsverse.com
1820 | worldmarket.com
1821 | offerpop.com
1822 | basspro.com
1823 | proxyvote.com
1824 | nethugs.com
1825 | softpedia.com
1826 | trimdownclub.com
1827 | eixaegoogle.net
1828 | audioeye.com
1829 | androidpolice.com
1830 | biblehub.com
1831 | pardot.com
1832 | nero.com
1833 | news9.com
1834 | brickworkplanning.net
1835 | cimcontent.net
1836 | maillist-manage.com
1837 | knoxnews.com
1838 | consumers-reviews.info
1839 | latest-hairstyles.com
1840 | caremark.com
1841 | rickey.org
1842 | reynoldskitchens.com
1843 | amtrak.com
1844 | quibblo.com
1845 | contourgroup.com
1846 | bloodpressuresolution.com
1847 | carnival.com
1848 | musiciansfriend.com
1849 | vividseats.com
1850 | vetstreet.com
1851 | consumers-survey.org
1852 | alltrails.com
1853 | autismspeaks.org
1854 | ieroobetacash.com
1855 | buzzcontrol.com
1856 | giveworks.net
1857 | drsfostersmith.com
1858 | riteaid.com
1859 | topspeed.com
1860 | tinyurl.com
1861 | phoenixnewtimes.com
1862 | flyfrontier.com
1863 | markebase.net
1864 | americaloveshorsepower.com
1865 | objectpatterns.com
1866 | allmusic.com
1867 | hclips.com
1868 | eddiebauer.com
1869 | barackobama.com
1870 | ohpomsoloadsagency.net
1871 | naeghencuentraprecios.net
1872 | niwiebelajaringgris.com
1873 | blackgirllonghair.com
1874 | cardinalcommerce.com
1875 | bigcommerce.com
1876 | ewikin.com
1877 | choxi.com
1878 | houselogic.com
1879 | lifelock.com
1880 | epochtimes.com
1881 | sweepsfulfill.com
1882 | iloveoldschoolmusic.com
1883 | oorohneedhot.net
1884 | tune.pk
1885 | vauyimaslak1453.com
1886 | boredlion.com
1887 | turbobytes.com
1888 | eefahtorrentleech.net
1889 | myajc.com
1890 | lin-digital.com
1891 | academia.edu
1892 | capitalone360.com
1893 | freeshipping.com
1894 | eiraealturahb.net
1895 | villagevoice.com
1896 | thenewcivilrightsmovement.com
1897 | turbobytes.net
1898 | michigan.gov
1899 | tedcruz.org
1900 | bloomingdales.com
1901 | citrixonline.com
1902 | rm0007.net
1903 | citicards.com
1904 | receleb.com
1905 | celebuzz.com
1906 | optum.com
1907 | dcgazette.com
1908 | 12tomatoes.com
1909 | beverlyhills-md.com
1910 | universityofguns.com
1911 | jtv.com
1912 | securedpayments-network.com
1913 | ahriishenjiang120.net
1914 | tawk.to
1915 | edwardjones.com
1916 | markandgraham.com
1917 | billmelater.com
1918 | bbt.com
1919 | planningcenteronline.com
1920 | duckduckgo.com
1921 | look.com
1922 | metacafe.com
1923 | thepointsguy.com
1924 | searchscroll.com
1925 | psychologytoday.com
1926 | dallasnews.com
1927 | strategicinvestment.com
1928 | pbteen.com
1929 | watchmygf.to
1930 | engadget.com
1931 | bible.com
1932 | prevention.com
1933 | piano-media.com
1934 | thelovelyplanet.net
1935 | tdameritrade.com
1936 | acexedge.com
1937 | glamourpage.com
1938 | berniesanders.com
1939 | naturallycurly.com
1940 | openstreetmap.org
1941 | godatafeed.com
1942 | homedit.com
1943 | onetravel.com
1944 | dental-implant-options.com
1945 | wellsfargoadvisors.com
1946 | snapengage.com
1947 | dvidshub.net
1948 | shoppersvoice.com
1949 | foodbeast.com
1950 | maisreceitas.com
1951 | mstarz.com
1952 | insuranceslip.com
1953 | magiquiz.com
1954 | hot97.com
1955 | thealternativedaily.com
1956 | fashionista.com
1957 | gotquestions.org
1958 | buzzya.com
1959 | aiziewallpaperstate.com
1960 | ixeifgadget.com
1961 | vast.com
1962 | politicususa.com
1963 | azbackpackers.com
1964 | escalate.com
1965 | wptv.com
1966 | wyndhamrewards.com
1967 | lenscrafters.com
1968 | lifefactopia.com
1969 | zorpia.com
1970 | deem.com
1971 | roomkey.com
1972 | informars.com
1973 | contextly.com
1974 | mybigcommerce.com
1975 | searchquirk.com
1976 | rtdock.com
1977 | corestandards.org
1978 | voluumtrk.com
1979 | pushauction.com
1980 | scribblelive.com
1981 | threepercenternation.com
1982 | orientaltrading.com
1983 | movieinsider.com
1984 | wallstreetdaily.com
1985 | ailohdoor2windows.net
1986 | ielohicsc.com
1987 | planet49.com
1988 | caseyresearch.com
1989 | airbnb.com
1990 | 9news.com
1991 | earthsky.org
1992 | statesman.com
1993 | inthecompanyofdogs.com
1994 | aetndigital.com
1995 | imperialsearch.com
1996 | awstls.com
1997 | pace.com
1998 | jungroup.com
1999 | techspot.com
2000 | familytreenow.com
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_top500.txt:
--------------------------------------------------------------------------------
1 | google.com
2 | youtube.com
3 | facebook.com
4 | msn.com
5 | twitter.com
6 | bing.com
7 | yelp.com
8 | amazon.com
9 | microsoft.com
10 | answers.com
11 | buzzfeed.com
12 | pinterest.com
13 | live.com
14 | yahoo.com
15 | ebay.com
16 | wikipedia.org
17 | aol.com
18 | wikia.com
19 | paypal.com
20 | ask.com
21 | linkedin.com
22 | about.com
23 | wordpress.com
24 | blogger.com
25 | diply.com
26 | craigslist.org
27 | bustle.com
28 | blogspot.com
29 | urbandictionary.com
30 | whitepages.com
31 | weather.com
32 | walmart.com
33 | mozilla.org
34 | stackexchange.com
35 | adobe.com
36 | wayfair.com
37 | vimeo.com
38 | quizlet.com
39 | sbnation.com
40 | nydailynews.com
41 | nytimes.com
42 | healthline.com
43 | imgur.com
44 | legacy.com
45 | wellsfargo.com
46 | usmagazine.com
47 | dose.com
48 | comcast.net
49 | topix.com
50 | ijreview.com
51 | mapquest.com
52 | godaddy.com
53 | uproxx.com
54 | go.com
55 | babycenter.com
56 | goodreads.com
57 | bizrate.com
58 | southwest.com
59 | refinery29.com
60 | glassdoor.com
61 | 247sports.com
62 | fandango.com
63 | nbcsports.com
64 | imdb.com
65 | instructables.com
66 | theverge.com
67 | thechive.com
68 | chase.com
69 | ibtimes.com
70 | people.com
71 | distractify.com
72 | rare.us
73 | yourdailydish.com
74 | deviantart.com
75 | apple.com
76 | city-data.com
77 | mic.com
78 | vox.com
79 | photobucket.com
80 | att.com
81 | ups.com
82 | hubpages.com
83 | usps.com
84 | al.com
85 | tmz.com
86 | theblaze.com
87 | moviepilot.com
88 | qpolitical.com
89 | rollingstone.com
90 | webmd.com
91 | instagram.com
92 | lifehacker.com
93 | rawstory.com
94 | booking.com
95 | guff.com
96 | ranker.com
97 | zillow.com
98 | yellowpages.com
99 | upworthy.com
100 | americanoverlook.com
101 | gizmodo.com
102 | tripadvisor.com
103 | hp.com
104 | theonion.com
105 | nbcnews.com
106 | thoughtcatalog.com
107 | gfycat.com
108 | nj.com
109 | westernjournalism.com
110 | opposingviews.com
111 | faithtap.com
112 | youngcons.com
113 | thekitchn.com
114 | target.com
115 | dailydot.com
116 | bankofamerica.com
117 | inquisitr.com
118 | bestbuy.com
119 | gawker.com
120 | rottentomatoes.com
121 | myspace.com
122 | homedepot.com
123 | fedex.com
124 | staples.com
125 | eonline.com
126 | dmv.org
127 | etsy.com
128 | salon.com
129 | examiner.com
130 | sears.com
131 | buzzlie.com
132 | reddit.com
133 | cheatsheet.com
134 | deadspin.com
135 | mlb.com
136 | radaronline.com
137 | androidcentral.com
138 | drudgereport.com
139 | merriam-webster.com
140 | mentalfloss.com
141 | windows.com
142 | cnet.com
143 | skype.com
144 | nbc.com
145 | mlive.com
146 | hellogiggles.com
147 | stackoverflow.com
148 | bbb.org
149 | brainjet.com
150 | myrecipes.com
151 | emgn.com
152 | allenbwest.com
153 | brommando.com
154 | cbssports.com
155 | expedia.com
156 | cinemablend.com
157 | cnbc.com
158 | msnbc.com
159 | dailykos.com
160 | liftbump.com
161 | cvs.com
162 | ozy.com
163 | omgfacts.com
164 | cnn.com
165 | fidelity-media.com
166 | newsmax.com
167 | patheos.com
168 | jezebel.com
169 | americanexpress.com
170 | lifescript.com
171 | today.com
172 | powerinbox.com
173 | someecards.com
174 | thehill.com
175 | twitch.tv
176 | howtogeek.com
177 | potterybarn.com
178 | netflix.com
179 | eater.com
180 | internetautoguide.com
181 | macrumors.com
182 | io9.com
183 | evite.com
184 | stripe.com
185 | okmagazine.com
186 | disney.com
187 | costco.com
188 | kohls.com
189 | independent.co.uk
190 | shopping.com
191 | pixable.com
192 | thepoliticalinsider.com
193 | jcpenney.com
194 | overstock.com
195 | lpsnmedia.net
196 | smarter.com
197 | capitalone.com
198 | crowdsocial.com
199 | imore.com
200 | zimbio.com
201 | suggest.com
202 | alibaba.com
203 | timeanddate.com
204 | lowes.com
205 | twentytwowords.com
206 | nih.gov
207 | enotes.com
208 | abcmenorca.net
209 | flickr.com
210 | boxingmoney.com
211 | nesn.com
212 | starpulse.com
213 | sfgate.com
214 | toptenvideos.com
215 | walgreens.com
216 | liveleak.com
217 | cc.com
218 | beenverified.com
219 | turner.com
220 | trulia.com
221 | fidelity.com
222 | oregonlive.com
223 | discover.com
224 | mosthappy.com
225 | travelzoo.com
226 | shmoop.com
227 | americannews.com
228 | dailymail.co.uk
229 | kotaku.com
230 | ulta.com
231 | macys.com
232 | driversupport.com
233 | lifebuzz.com
234 | usaa.com
235 | dailycaller.com
236 | cleveland.com
237 | stylebistro.com
238 | connect5364.com
239 | stuccu.com
240 | office.com
241 | apartmenttherapy.com
242 | ask.fm
243 | ticketmaster.com
244 | verizon.com
245 | break.com
246 | onestore.ms
247 | seriouseats.com
248 | brobible.com
249 | fuel451.com
250 | playboy.com
251 | googletagmanager.com
252 | tiqcdn.com
253 | dummies.com
254 | techradar.com
255 | atemda.com
256 | getitfree.us
257 | creditkarma.com
258 | thinkprogress.org
259 | weather.gov
260 | prisacom.com
261 | odometer.com
262 | theguardian.com
263 | politico.com
264 | softonic.com
265 | southernliving.com
266 | superuser.com
267 | thefederalistpapers.org
268 | ybx.io
269 | n192adserv.com
270 | cabelas.com
271 | minq.com
272 | movable-ink-2183.com
273 | britannica.com
274 | clipd.com
275 | collegehumor.com
276 | deliverimp.com
277 | jalopnik.com
278 | dallasblack.com
279 | getdrivingdirections.co
280 | pbs.org
281 | zoomads.net
282 | cookinglight.com
283 | giphy.com
284 | ironbeast.io
285 | ca.gov
286 | edmunds.com
287 | mobilelikez.com
288 | worldlifestyle.com
289 | coupons.net
290 | drugs.com
291 | pch.com
292 | fixya.com
293 | unsubscribe-4-63.com
294 | adsupply.com
295 | csmonitor.com
296 | gravatar.com
297 | chacha.com
298 | nfl.com
299 | choicehotels.com
300 | washingtontimes.com
301 | thirdpresence.com
302 | indiegogo.com
303 | mbiscotti.com
304 | aarp.org
305 | srvv.co
306 | healthgrades.com
307 | cbsnews.com
308 | synoloads.com
309 | mensfitness.com
310 | foodnetwork.com
311 | ultimate-guitar.com
312 | saturdaydownsouth.com
313 | cloudsponge.com
314 | avclub.com
315 | adserve.io
316 | eleadcrm.com
317 | webroot.com
318 | ajc.com
319 | wsbtv.com
320 | npr.org
321 | medicinenet.com
322 | visualstudio.com
323 | basestyle.org
324 | nola.com
325 | businessinsider.com
326 | newser.com
327 | theatlantic.com
328 | lg.com
329 | wimp.com
330 | vitals.com
331 | bedbathandbeyond.com
332 | startribune.com
333 | yourtango.com
334 | aolsearch.com
335 | idigitaltimes.com
336 | allstateagencies.com
337 | thangasoline.com
338 | citibank.com
339 | jambia.com
340 | telemundo.com
341 | vine.co
342 | swifty.com
343 | carhartt.com
344 | consumerreports.org
345 | mysynchrony.com
346 | nmcdn.us
347 | trustpilot.com
348 | food.com
349 | aliexpress.com
350 | popsugar.com
351 | bandcamp.com
352 | wow.com
353 | iasds01.com
354 | medicalnewstoday.com
355 | envywomen.com
356 | agorafinancial.com
357 | carters.com
358 | rotoworld.com
359 | barnesandnoble.com
360 | newsweek.com
361 | hilton.com
362 | greatschools.org
363 | billoreilly.com
364 | puckermob.com
365 | easybib.com
366 | petfinder.com
367 | livingly.com
368 | analytics-egain.com
369 | unilad.co.uk
370 | usa.gov
371 | grindtv.com
372 | totalrewards.com
373 | wix.com
374 | looper.com
375 | wunderground.com
376 | scout.com
377 | noaa.gov
378 | michaels.com
379 | hotnewhiphop.com
380 | dropbox.com
381 | greatist.com
382 | ebaumsworld.com
383 | americanews.com
384 | jumblejoy.com
385 | united.com
386 | shopify.com
387 | infowars.com
388 | newegg.com
389 | videostat.com
390 | oola.com
391 | tributes.com
392 | googlevideo.com
393 | angieslist.com
394 | fitbit.com
395 | comicbook.com
396 | qvc.com
397 | boomtrain.com
398 | boostable.com
399 | btttag.com
400 | hotjar.com
401 | tvaccessnow.com
402 | videoactivenetwork.tv
403 | interactivebrokers.com
404 | economist.com
405 | indeed.com
406 | citi.com
407 | pagesix.com
408 | archive.org
409 | vennq.com
410 | atomica.com
411 | wnd.com
412 | sharecare.com
413 | viralands.com
414 | shape.com
415 | latimes.com
416 | wikimedia.org
417 | dish.com
418 | infoplease.com
419 | allrecipes.com
420 | mediaite.com
421 | ink361.com
422 | befrugal.com
423 | viewwonder.com
424 | justanswer.com
425 | azurewebsites.net
426 | ksl.com
427 | 247-inc.net
428 | cdnpps.us
429 | 9to5mac.com
430 | kinja-static.com
431 | good.is
432 | xfinity.com
433 | dailysanctuary.com
434 | local.com
435 | smosh.com
436 | tstags.com
437 | gunbroker.com
438 | fishwrapper.com
439 | nationalgeographic.com
440 | siriusxm.com
441 | bravotv.com
442 | officedepot.com
443 | simplyhired.com
444 | wittyfeed.com
445 | sovereignsociety.com
446 | rollbar.com
447 | hsionlineorders.net
448 | bradsdeals.com
449 | malwarebytes.org
450 | womanfreebies.com
451 | force.com
452 | blessings.com
453 | techtimes.com
454 | presscdn.com
455 | reuters.com
456 | usbank.com
457 | patient.info
458 | fanplayr.com
459 | king.com
460 | hulu.com
461 | kabbage.com
462 | thepennyhoarder.com
463 | mrc-isaca.org
464 | howstuffworks.com
465 | phluidmediacrv.net
466 | snapwidget.com
467 | zadsy.com
468 | aabkc.com
469 | clickcertain.com
470 | potterybarnkids.com
471 | microsoftstore.com
472 | peoplefinders.com
473 | biglots.com
474 | inspiremore.com
475 | sumome.com
476 | samsclub.com
477 | roku.com
478 | brainfall.com
479 | polygon.com
480 | usnews.com
481 | scribd.com
482 | nile.works
483 | kbb.com
484 | experienceproject.com
485 | cbs.com
486 | unsubjn67.com
487 | discovercard.com
488 | ssa.gov
489 | epsilon.com
490 | kompasads.net
491 | nhl.com
492 | charter.net
493 | freeskreen.com
494 | groceryserver.com
495 | hitfix.com
496 | wgntv.com
497 | shareably.net
498 | education.com
499 | allmenus.com
500 | kaiserpermanente.org
--------------------------------------------------------------------------------
/sample-apps/userdata/sample_target_hosts_top500_old.txt:
--------------------------------------------------------------------------------
1 | www.facebook.com
2 | www.twitter.com
3 | www.google.com
4 | www.youtube.com
5 | www.wordpress.org
6 | www.adobe.com
7 | www.blogspot.com
8 | www.wikipedia.org
9 | www.wordpress.com
10 | www.linkedin.com
11 | www.yahoo.com
12 | www.amazon.com
13 | www.flickr.com
14 | www.w3.org
15 | www.pinterest.com
16 | www.apple.com
17 | www.tumblr.com
18 | www.myspace.com
19 | www.microsoft.com
20 | www.vimeo.com
21 | www.digg.com
22 | www.stumbleupon.com
23 | www.baidu.com
24 | www.addthis.com
25 | www.miibeian.gov.cn
26 | www.statcounter.com
27 | www.bit.ly
28 | www.feedburner.com
29 | www.nytimes.com
30 | www.reddit.com
31 | www.delicious.com
32 | www.msn.com
33 | www.macromedia.com
34 | www.bbc.co.uk
35 | www.weebly.com
36 | www.blogger.com
37 | www.icio.us
38 | www.goo.gl
39 | www.gov.uk
40 | www.cnn.com
41 | www.yandex.ru
42 | www.webs.com
43 | www.google.de
44 | www.mail.ru
45 | www.livejournal.com
46 | www.sourceforge.net
47 | www.go.com
48 | www.imdb.com
49 | www.jimdo.com
50 | www.instagram.com
51 | www.free.fr
52 | www.tinyurl.com
53 | www.fc2.com
54 | www.google.co.jp
55 | www.typepad.com
56 | www.joomla.org
57 | www.technorati.com
58 | www.t.co
59 | www.networkadvertising.org
60 | www.sina.com.cn
61 | www.creativecommons.org
62 | www.about.com
63 | www.vk.com
64 | www.yahoo.co.jp
65 | www.guardian.co.uk
66 | www.aol.com
67 | www.google.co.uk
68 | www.nih.gov
69 | www.tripod.com
70 | www.hugedomains.com
71 | www.mozilla.org
72 | www.wsj.com
73 | www.ameblo.jp
74 | www.ebay.com
75 | www.huffingtonpost.com
76 | www.europa.eu
77 | www.rambler.ru
78 | www.51.la
79 | www.gnu.org
80 | www.theguardian.com
81 | www.bing.com
82 | www.geocities.com
83 | www.taobao.com
84 | www.godaddy.com
85 | www.mapquest.com
86 | www.issuu.com
87 | www.washingtonpost.com
88 | www.photobucket.com
89 | www.slideshare.net
90 | www.reuters.com
91 | www.wix.com
92 | www.clickbank.net
93 | www.163.com
94 | www.homestead.com
95 | www.posterous.com
96 | www.forbes.com
97 | www.soundcloud.com
98 | www.cnet.com
99 | www.amazon.co.uk
100 | www.etsy.com
101 | www.usatoday.com
102 | www.intoidc.net
103 | www.dailymotion.com
104 | www.weibo.com
105 | www.archive.org
106 | www.phpbb.com
107 | www.yelp.com
108 | www.telegraph.co.uk
109 | www.constantcontact.com
110 | www.phoca.cz
111 | www.latimes.com
112 | www.php.net
113 | www.rakuten.co.jp
114 | www.amazon.de
115 | www.google.fr
116 | www.ning.com
117 | www.opera.com
118 | www.live.com
119 | www.scribd.com
120 | www.squidoo.com
121 | www.sakura.ne.jp
122 | www.altervista.org
123 | www.sohu.com
124 | www.cdc.gov
125 | www.dailymail.co.uk
126 | www.mit.edu
127 | www.deviantart.com
128 | www.wikimedia.org
129 | www.e-recht24.de
130 | www.google.it
131 | www.parallels.com
132 | www.time.com
133 | www.stanford.edu
134 | www.harvard.edu
135 | www.addtoany.com
136 | www.bbb.org
137 | www.alibaba.com
138 | www.nasa.gov
139 | www.imageshack.us
140 | www.miitbeian.gov.cn
141 | www.npr.org
142 | www.ca.gov
143 | www.gravatar.com
144 | www.wired.com
145 | www.narod.ru
146 | www.blogspot.co.uk
147 | www.hatena.ne.jp
148 | www.histats.com
149 | www.angelfire.com
150 | www.amazon.co.jp
151 | www.nifty.com
152 | www.blog.com
153 | www.over-blog.com
154 | www.bloomberg.com
155 | www.eventbrite.com
156 | www.google.es
157 | www.ocn.ne.jp
158 | www.blinklist.com
159 | www.dedecms.com
160 | www.amazonaws.com
161 | www.google.ca
162 | www.ibm.com
163 | www.pbs.org
164 | www.xrea.com
165 | www.nbcnews.com
166 | www.mozilla.com
167 | www.weather.com
168 | www.a8.net
169 | www.noaa.gov
170 | www.foxnews.com
171 | www.cbsnews.com
172 | www.newsvine.com
173 | www.cpanel.net
174 | www.goo.ne.jp
175 | www.businessweek.com
176 | www.berkeley.edu
177 | www.geocities.jp
178 | www.loc.gov
179 | www.sfgate.com
180 | www.bluehost.com
181 | www.apache.org
182 | www.bandcamp.com
183 | www.whitehouse.gov
184 | www.seesaa.net
185 | www.usda.gov
186 | www.vkontakte.ru
187 | www.biglobe.ne.jp
188 | www.freewebs.com
189 | www.nationalgeographic.com
190 | www.mashable.com
191 | www.epa.gov
192 | www.icq.com
193 | www.oracle.com
194 | www.boston.com
195 | www.mysql.com
196 | www.ted.com
197 | www.eepurl.com
198 | www.ezinearticles.com
199 | www.examiner.com
200 | www.cornell.edu
201 | www.tripadvisor.com
202 | www.hp.com
203 | www.nps.gov
204 | www.kickstarter.com
205 | www.house.gov
206 | www.techcrunch.com
207 | www.alexa.com
208 | www.mediafire.com
209 | www.ucoz.ru
210 | www.sphinn.com
211 | www.google.nl
212 | www.un.org
213 | www.xinhuanet.com
214 | www.people.com.cn
215 | www.independent.co.uk
216 | www.reverbnation.com
217 | www.irs.gov
218 | www.wunderground.com
219 | www.webnode.com
220 | www.ustream.tv
221 | www.who.int
222 | www.squarespace.com
223 | www.opensource.org
224 | www.last.fm
225 | www.senate.gov
226 | www.oaic.gov.au
227 | www.drupal.org
228 | www.bizjournals.com
229 | www.webstarts.com
230 | www.topsy.com
231 | www.privacy.gov.au
232 | www.gmpg.org
233 | www.spiegel.de
234 | www.mac.com
235 | www.disqus.com
236 | www.skype.com
237 | www.redcross.org
238 | www.moonfruit.com
239 | www.cbslocal.com
240 | www.cbc.ca
241 | www.jugem.jp
242 | www.umich.edu
243 | www.1688.com
244 | www.discovery.com
245 | www.nature.com
246 | www.ycombinator.com
247 | www.wikia.com
248 | www.ifeng.com
249 | www.dropbox.com
250 | www.fda.gov
251 | www.google.com.br
252 | www.surveymonkey.com
253 | www.exblog.jp
254 | www.businessinsider.com
255 | www.webmd.com
256 | www.blogspot.com.es
257 | www.shinystat.com
258 | www.auda.org.au
259 | www.xanga.com
260 | www.github.com
261 | www.paypal.com
262 | www.sitemeter.com
263 | www.ft.com
264 | www.state.gov
265 | www.marketwatch.com
266 | www.netvibes.com
267 | www.netscape.com
268 | www.wiley.com
269 | www.prnewswire.com
270 | www.networksolutions.com
271 | www.cloudflare.com
272 | www.liveinternet.ru
273 | www.ed.gov
274 | www.zdnet.com
275 | www.cafepress.com
276 | www.diigo.com
277 | www.about.me
278 | www.goodreads.com
279 | www.chicagotribune.com
280 | www.ftc.gov
281 | www.soup.io
282 | www.quantcast.com
283 | www.google.pl
284 | www.economist.com
285 | www.google.cn
286 | www.census.gov
287 | www.ehow.com
288 | www.com.com
289 | www.blogspot.de
290 | www.intuit.com
291 | www.pagesperso-orange.fr
292 | www.blogspot.fr
293 | www.skyrock.com
294 | www.upenn.edu
295 | www.ow.ly
296 | www.google.com.au
297 | www.desdev.cn
298 | www.meetup.com
299 | www.hubpages.com
300 | www.utexas.edu
301 | www.slashdot.org
302 | www.doubleclick.net
303 | www.washington.edu
304 | www.engadget.com
305 | www.cdbaby.com
306 | www.blinkweb.com
307 | www.jigsy.com
308 | www.patch.com
309 | www.ucla.edu
310 | www.theatlantic.com
311 | www.thetimes.co.uk
312 | www.abc.net.au
313 | www.columbia.edu
314 | www.bloglines.com
315 | www.devhub.com
316 | www.usgs.gov
317 | www.infoseek.co.jp
318 | www.marriott.com
319 | www.behance.net
320 | www.yale.edu
321 | www.hc360.com
322 | www.hilton.com
323 | www.so-net.ne.jp
324 | www.plala.or.jp
325 | www.umn.edu
326 | www.flavors.me
327 | www.list-manage.com
328 | www.jiathis.com
329 | www.dion.ne.jp
330 | www.howstuffworks.com
331 | www.wikispaces.com
332 | www.is.gd
333 | www.slate.com
334 | www.naver.com
335 | www.g.co
336 | www.elegantthemes.com
337 | www.usa.gov
338 | www.edublogs.org
339 | www.bigcartel.com
340 | www.lycos.com
341 | www.usnews.com
342 | www.psu.edu
343 | www.wisc.edu
344 | www.sun.com
345 | www.yellowbook.com
346 | www.ucoz.com
347 | www.webeden.co.uk
348 | www.state.tx.us
349 | www.nhs.uk
350 | www.cargocollective.com
351 | www.timesonline.co.uk
352 | www.unicef.org
353 | www.salon.com
354 | www.shareasale.com
355 | www.samsung.com
356 | www.theglobeandmail.com
357 | www.xing.com
358 | www.smh.com.au
359 | www.gizmodo.com
360 | www.me.com
361 | www.businesswire.com
362 | www.intel.com
363 | www.purevolume.com
364 | www.paginegialle.it
365 | www.cocolog-nifty.com
366 | www.example.com
367 | www.artisteer.com
368 | www.biblegateway.com
369 | www.answers.com
370 | www.cmu.edu
371 | www.ask.com
372 | www.unesco.org
373 | www.blogspot.in
374 | www.reference.com
375 | www.booking.com
376 | www.altavista.com
377 | www.prlog.org
378 | www.sciencedaily.com
379 | www.i2i.jp
380 | www.google.ru
381 | www.multiply.com
382 | www.dmoz.org
383 | www.dagondesign.com
384 | www.blogs.com
385 | www.smugmug.com
386 | www.canalblog.com
387 | www.deliciousdays.com
388 | www.blogspot.com.br
389 | www.craigslist.org
390 | www.istockphoto.com
391 | www.google.com.hk
392 | www.domainmarket.com
393 | www.t-online.de
394 | www.jalbum.net
395 | www.cnbc.com
396 | www.mtv.com
397 | www.si.edu
398 | www.zimbio.com
399 | www.twitpic.com
400 | www.1und1.de
401 | www.wufoo.com
402 | www.ebay.co.uk
403 | www.furl.net
404 | www.netlog.com
405 | www.symantec.com
406 | www.indiatimes.com
407 | www.nypost.com
408 | www.hhs.gov
409 | www.uiuc.edu
410 | www.princeton.edu
411 | www.comcast.net
412 | www.newyorker.com
413 | www.livedoor.com
414 | www.cisco.com
415 | www.nba.com
416 | www.chron.com
417 | www.admin.ch
418 | www.thedailybeast.com
419 | www.java.com
420 | www.springer.com
421 | www.4shared.com
422 | www.vistaprint.com
423 | www.hud.gov
424 | www.storify.com
425 | www.shutterfly.com
426 | www.chronoengine.com
427 | www.mlb.com
428 | www.simplemachines.org
429 | www.dyndns.org
430 | www.sciencedirect.com
431 | www.dell.com
432 | www.wallinside.com
433 | www.virginia.edu
434 | www.bravesites.com
435 | www.tinypic.com
436 | www.csmonitor.com
437 | www.msu.edu
438 | www.dot.gov
439 | www.tuttocitta.it
440 | www.ovh.net
441 | www.fotki.com
442 | www.japanpost.jp
443 | www.tamu.edu
444 | www.aboutads.info
445 | www.accuweather.com
446 | www.earthlink.net
447 | www.printfriendly.com
448 | www.nyu.edu
449 | www.army.mil
450 | www.tripod.co.uk
451 | www.mayoclinic.com
452 | www.omniture.com
453 | www.arizona.edu
454 | www.lulu.com
455 | www.ucsd.edu
456 | www.rediff.com
457 | www.odnoklassniki.ru
458 | www.china.com.cn
459 | www.elpais.com
460 | www.hostmonster.com
461 | www.unblog.fr
462 | www.real.com
463 | www.toplist.cz
464 | www.fastcompany.com
465 | www.studiopress.com
466 | www.ox.ac.uk
467 | www.vinaora.com
468 | www.unc.edu
469 | www.jevents.net
470 | www.cyberchimps.com
471 | www.purdue.edu
472 | www.suntimes.com
473 | www.mapy.cz
474 | www.shop-pro.jp
475 | www.yellowpages.com
476 | www.webnode.fr
477 | www.seattletimes.com
478 | www.blogtalkradio.com
479 | www.cba.pl
480 | www.beep.com
481 | www.nsw.gov.au
482 | www.scientificamerican.com
483 | www.va.gov
484 | www.arstechnica.com
485 | www.mixx.com
486 | www.cam.ac.uk
487 | www.fema.gov
488 | www.oakley.com
489 | www.chinadaily.com.cn
490 | www.uchicago.edu
--------------------------------------------------------------------------------
/sample-spark-server/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Mobile Tools for Java (J2ME)
4 | .mtj.tmp/
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | application.log*
12 |
13 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
14 | hs_err_pid*
15 | /target/
16 |
17 | .DS_Store
18 |
19 | #elastic data
20 | data/
21 |
22 | #parallec log
23 | parallec_logs/*
24 | !parallec_logs/keepthisfile
25 |
26 | #user data
27 | userdata/*
28 | !userdata/keepthisfile
29 |
30 | !userdata/tasklogs
31 | userdata/tasklogs/*
32 | !userdata/tasklogs/keepthisfile
33 | !userdata/sample_target*
34 | *.jks
35 | *.pem
36 |
37 | #mkdown
38 | .*.md.html
39 |
40 | /.settings/
41 | .classpath
42 | .project
43 | /bin/
44 |
45 | targetHostFile
46 |
--------------------------------------------------------------------------------
/sample-spark-server/pom.xml:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 | io.parallec
4 | parallec-sample-spark-server
5 |
6 | 0.9.0
7 | parallec-sample-spark-server
8 | https://github.com/ebay/parallec-samples
9 |
10 |
11 | 1.7.12
12 | 1.1.3
13 |
14 |
15 |
16 |
17 | com.sparkjava
18 | spark-core
19 | 2.3
20 |
21 |
22 |
23 | io.parallec
24 | parallec-core
25 | 0.8.12-beta
26 |
27 |
28 |
29 | org.elasticsearch
30 | elasticsearch
31 | 1.3.4
32 |
33 |
34 |
35 | org.codehaus.groovy
36 | groovy-all
37 | 2.3.2
38 | test
39 |
40 |
41 | org.apache.lucene
42 | lucene-expressions
43 | 4.10.2
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | org.apache.maven.plugins
54 | maven-jar-plugin
55 | 2.6
56 |
57 |
58 |
59 | true
60 | lib/
61 | io.parallec.ebay.server.ParallecSparkServer
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | maven-assembly-plugin
70 |
71 |
72 |
73 | io.parallec.ebay.server.ParallecSparkServer
74 |
75 |
76 |
77 | jar-with-dependencies
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | org.apache.maven.plugins
88 | maven-compiler-plugin
89 |
90 | 1.8
91 | 1.8
92 |
93 |
94 |
95 |
96 |
97 |
98 | eBay
99 | www.ebay.com
100 |
101 |
102 |
--------------------------------------------------------------------------------
/sample-spark-server/src/main/java/io/parallec/ebay/server/ParallecSparkServer.java:
--------------------------------------------------------------------------------
1 | package io.parallec.ebay.server;
2 |
3 | import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
4 | import static spark.Spark.before;
5 | import static spark.Spark.get;
6 | import io.parallec.core.HostsSourceType;
7 | import io.parallec.core.ParallecResponseHandler;
8 | import io.parallec.core.ParallelClient;
9 | import io.parallec.core.ParallelTask;
10 | import io.parallec.core.ResponseOnSingleTask;
11 | import io.parallec.core.config.ParallelTaskConfig;
12 | import io.parallec.core.util.PcDateUtils;
13 | import io.parallec.core.util.PcStringUtils;
14 |
15 | import java.util.HashMap;
16 | import java.util.Map;
17 |
18 | import org.elasticsearch.client.Client;
19 | import org.elasticsearch.node.Node;
20 |
21 | /**
22 | * Sample Single File Server in Spark. Require JDK 1.8+ due to Spark server.
23 | * http://sparkjava.com/documentation.html
24 | *
25 | * Build: mvn clean compile assembly:single
26 | *
27 | * Run: in parallec-samples/sample-spark-server/target: sudo java -jar parallec-sample-spark-server-0.9.0-jar-with-dependencies.jar
28 | *
29 | * run API example:
30 | *
31 | * localhost:4567/ssh/targetHostFile/200/true (require update login user/password)
32 | *
33 | * localhost:4567/ping/targetHostFile ; need root
34 | *
35 | * localhost:4567/http/targetHostFile : use elastic search
36 | *
37 | * targetHostFile is relative to this path. If in IDE, put into the same folder as the pom.xml.
38 | * if run as jar. just same folder as the executable jar file.
39 | *
40 | * @author Yuanteng (Jeff) Pei
41 | *
42 | */
43 | public class ParallecSparkServer {
44 |
45 |
46 | public static String userName = "yourUserNameforSsh";
47 | public static String password = "yourPasswordforSsh";
48 |
49 | public static void main(String[] args) {
50 |
51 | before((request, response) -> response.type("text/plain"));
52 |
53 | get("/",
54 | (request, response) -> "Welcome to Parallec Sample Single File Server in Spark. Require JDK 1.8+ due to Spark server. "
55 | + "run API example: \n"
56 | + "localhost:4567/ssh/targetHostFile/200/true\n"
57 | + "localhost:4567/http/targetHostFile\n"
58 | + "localhost:4567/ping/targetHostFile (Must Run as ROOT / sudo)\n"
59 | + "targetHostFile is a local file with host name line by line that in same dir of this executabe jar");
60 |
61 | get("/http/:filename", (request, response) -> {
62 | String fileName = request.params(":filename");
63 | String res = checkSiteStatus(fileName);
64 | response.status(200);
65 | return "Parallec: completed HTTP and sent to elastic search \n:" + res + "\nAt "
66 | + PcDateUtils.getNowDateTimeStrStandard();
67 | });
68 |
69 | get("/ssh/:filename/:concurrency/:showDetail",
70 | (request, response) -> {
71 | String fileName = request.params(":filename");
72 | int concurrency = Integer.parseInt(request
73 | .params(":concurrency"));
74 | boolean showDetail = Boolean.parseBoolean(request
75 | .params(":showDetail"));
76 | String res = scalableSsh(fileName, concurrency, showDetail);
77 | response.status(200);
78 | return "Parallec: completed SSH \n" + res + "\nAt "
79 | + PcDateUtils.getNowDateTimeStrStandard();
80 | });
81 |
82 | get("/ping/:filename", (request, response) -> {
83 | String fileName = request.params(":filename");
84 | String res = scalablePing(fileName);
85 | response.status(200);
86 | return "Parallec: completed Ping \n " + res + "\nAt "
87 | + PcDateUtils.getNowDateTimeStrStandard();
88 | });
89 |
90 | get("/shutdown",
91 | (request, response) -> {
92 | releaseResources();
93 | response.status(200);
94 | return "relased all resources at "
95 | + PcDateUtils.getNowDateTimeStrStandard();
96 | });
97 | }
98 |
99 |
100 | public static String scalableSsh(String fileName, int concurrency,
101 | boolean showDetail) {
102 |
103 | ParallelClient pc = new ParallelClient();
104 |
105 | ParallelTask task = pc
106 | .prepareSsh()
107 | .setConcurrency(concurrency)
108 | .setTargetHostsFromLineByLineText(fileName,
109 | HostsSourceType.LOCAL_FILE)
110 | .setSshCommandLine("date; ").setSshUserName(userName)
111 | .setSshPassword(password)
112 | .execute(new ParallecResponseHandler() {
113 | @Override
114 | public void onCompleted(ResponseOnSingleTask res,
115 | Map responseContext) {
116 | System.out.println("Responose:" + res.toString()
117 | + " host: " + res.getHost() + " errmsg: "
118 | + res.getErrorMessage());
119 | }
120 | });
121 |
122 | String res = task.getRequestNumActual()
123 | + " Servers in "
124 | + task.getDurationSec()
125 | + " seconds. Results:\n\n"
126 | + (showDetail ? task.getAggregatedResultHumanStr()
127 | : PcStringUtils.renderJson(task
128 | .getAggregateResultCountSummary()));
129 |
130 | System.out.println("Task Pretty Print: \n " + res);
131 | return res;
132 | }
133 |
134 | public static String scalablePing(String fileName) {
135 | ParallelClient pc = new ParallelClient();
136 | ParallelTask task = pc
137 | .preparePing()
138 | .setConcurrency(1500)
139 | .setTargetHostsFromLineByLineText(fileName,
140 | HostsSourceType.LOCAL_FILE)
141 | .execute(new ParallecResponseHandler() {
142 | @Override
143 | public void onCompleted(ResponseOnSingleTask res,
144 | Map responseContext) {
145 | ;// logger.info(res.toString());
146 | }
147 | });
148 | String res = task.getRequestNumActual()
149 | + " Servers in "
150 | + task.getDurationSec()
151 | + " seconds. Results: "
152 | + task.getAggregatedResultHumanStr();
153 | System.out.println("Task summary: \n " + res);
154 | return res;
155 | }// end func
156 |
157 | public static void releaseResources() {
158 | ParallelClient parallec = new ParallelClient();
159 | parallec.releaseExternalResources();
160 | }
161 |
162 | public static String checkSiteStatus(String fileName) {
163 |
164 | ParallelClient pc = new ParallelClient();
165 | HashMap responseContext = new HashMap();
166 | Node node = nodeBuilder().node();
167 | responseContext.put("Client", node.client());
168 | ParallelTask task = pc
169 | .prepareHttpGet("")
170 | .setTargetHostsFromLineByLineText(fileName,
171 | HostsSourceType.LOCAL_FILE)
172 | .setResponseContext(responseContext).setConfig(genConfig())
173 | .execute(new ParallecResponseHandler() {
174 | public void onCompleted(ResponseOnSingleTask res,
175 | Map responseContext) {
176 | Map metricMap = new HashMap();
177 | metricMap.put("StatusCode", res.getStatusCode()
178 | .replaceAll(" ", "_"));
179 | metricMap.put("LastUpdated",
180 | PcDateUtils.getNowDateTimeStrStandard());
181 | metricMap.put("NodeGroupType", fileName);
182 | Client client = (Client) responseContext.get("Client");
183 | client.prepareIndex("local", "parallec", res.getHost())
184 | .setSource(metricMap).execute();
185 | }
186 | });
187 |
188 | String res = task.getRequestNumActual()
189 | + " Servers in "
190 | + task.getDurationSec()
191 | + " seconds. Results: "
192 | + " Results: "
193 | + task.getAggregatedResultHumanStr();
194 |
195 | node.close();
196 |
197 | System.out.println("Task summary: \n " + res);
198 | return res;
199 |
200 | }// end func
201 |
202 | public static ParallelTaskConfig genConfig() {
203 | ParallelTaskConfig config = new ParallelTaskConfig();
204 | config.setActorMaxOperationTimeoutSec(20);
205 | config.setAutoSaveLogToLocal(true);
206 | config.setSaveResponseToTask(true);
207 | return config;
208 | }
209 |
210 | }
211 |
--------------------------------------------------------------------------------
/sample-spark-server/userdata/keepthisfile:
--------------------------------------------------------------------------------
1 | do not remove this for git
2 |
--------------------------------------------------------------------------------