new highest-priority-first scheduler
This commit is contained in:
		
							parent
							
								
									71b2855d01
								
							
						
					
					
						commit
						4a5ecf7a37
					
				
							
								
								
									
										2
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								app.py
									
									
									
									
									
								
							@ -411,7 +411,7 @@ def get_providers():
 | 
				
			|||||||
        
 | 
					        
 | 
				
			||||||
        if scanner:
 | 
					        if scanner:
 | 
				
			||||||
            completed_tasks = scanner.indicators_completed
 | 
					            completed_tasks = scanner.indicators_completed
 | 
				
			||||||
            enqueued_tasks = len(scanner.task_queue)
 | 
					            enqueued_tasks = scanner.task_queue.qsize()
 | 
				
			||||||
            print(f"DEBUG: Tasks - Completed: {completed_tasks}, Enqueued: {enqueued_tasks}")
 | 
					            print(f"DEBUG: Tasks - Completed: {completed_tasks}, Enqueued: {enqueued_tasks}")
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            print("DEBUG: No active scanner session found.")
 | 
					            print("DEBUG: No active scanner session found.")
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								cache/crtsh/20_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/20_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"20.c-rieger.de","first_cached":"2025-09-15T20:18:45.612714+00:00","last_upstream_query":"2025-09-15T20:18:45.612719+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"20.c-rieger.de","name_value":"20.c-rieger.de\nwww.20.c-rieger.de","id":3536326667,"entry_timestamp":"2020-10-20T18:05:41.571","not_before":"2020-10-20T17:05:41","not_after":"2021-01-18T17:05:41","serial_number":"039b898ec613e6397ced0969a3287a7bfae8","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"20.c-rieger.de","name_value":"20.c-rieger.de\nwww.20.c-rieger.de","id":3536326769,"entry_timestamp":"2020-10-20T18:05:41.358","not_before":"2020-10-20T17:05:41","not_after":"2021-01-18T17:05:41","serial_number":"039b898ec613e6397ced0969a3287a7bfae8","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/25crits_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/25crits_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"25crits.c-rieger.de","first_cached":"2025-09-15T20:18:46.126237+00:00","last_upstream_query":"2025-09-15T20:18:46.126241+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295814,"issuer_name":"C=US, O=Let's Encrypt, CN=R10","common_name":"25crits.c-rieger.de","name_value":"25crits.c-rieger.de\nwww.25crits.c-rieger.de","id":14873872724,"entry_timestamp":"2024-10-10T10:31:19.276","not_before":"2024-10-10T09:32:48","not_after":"2025-01-08T09:32:47","serial_number":"04651f5be155719ff4adbd7696fa7f5215eb","result_count":3},{"issuer_ca_id":295814,"issuer_name":"C=US, O=Let's Encrypt, CN=R10","common_name":"25crits.c-rieger.de","name_value":"25crits.c-rieger.de\nwww.25crits.c-rieger.de","id":14873856246,"entry_timestamp":"2024-10-10T10:31:19.016","not_before":"2024-10-10T09:32:48","not_after":"2025-01-08T09:32:47","serial_number":"04651f5be155719ff4adbd7696fa7f5215eb","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/accounts_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/accounts_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"accounts.c-rieger.de","first_cached":"2025-09-15T20:18:46.562923+00:00","last_upstream_query":"2025-09-15T20:18:46.562926+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"opentalk.c-rieger.de","name_value":"accounts.c-rieger.de","id":13716571093,"entry_timestamp":"2024-07-10T14:12:10.507","not_before":"2024-07-10T13:12:09","not_after":"2024-10-08T13:12:08","serial_number":"03c6568cb5e7a0e40476491ca634dbdc61bc","result_count":1},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"opentalk.c-rieger.de","name_value":"accounts.c-rieger.de","id":13684341172,"entry_timestamp":"2024-07-10T14:12:10.074","not_before":"2024-07-10T13:12:09","not_after":"2024-10-08T13:12:08","serial_number":"03c6568cb5e7a0e40476491ca634dbdc61bc","result_count":1}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/apache2_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/apache2_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"apache2.c-rieger.de","first_cached":"2025-09-15T20:19:46.136503+00:00","last_upstream_query":"2025-09-15T20:19:46.136507+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"apache2.c-rieger.de","name_value":"apache2.c-rieger.de","id":1445986275,"entry_timestamp":"2019-05-03T10:55:36.619","not_before":"2019-05-03T09:55:36","not_after":"2019-08-01T09:55:36","serial_number":"03390eb097f5545f0680a0f4654fc45ef7d2","result_count":2},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"apache2.c-rieger.de","name_value":"apache2.c-rieger.de","id":1441087721,"entry_timestamp":"2019-05-03T10:55:36.257","not_before":"2019-05-03T09:55:36","not_after":"2019-08-01T09:55:36","serial_number":"03390eb097f5545f0680a0f4654fc45ef7d2","result_count":2},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"apache2.c-rieger.de","name_value":"apache2.c-rieger.de","id":347525857,"entry_timestamp":"2018-03-05T09:05:53.462","not_before":"2018-03-05T08:05:53","not_after":"2018-06-03T08:05:53","serial_number":"031f10a3b134e1411d0396722dc459d7c427","result_count":2},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"apache2.c-rieger.de","name_value":"apache2.c-rieger.de","id":137639695,"entry_timestamp":"2017-05-13T22:01:58.772","not_before":"2017-05-13T21:02:00","not_after":"2017-08-11T21:02:00","serial_number":"03c23a88dd30e700787f33cb1e198829d5a3","result_count":2},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"apache2.c-rieger.de","name_value":"apache2.c-rieger.de","id":137578751,"entry_timestamp":"2017-05-13T19:16:27.254","not_before":"2017-05-13T18:16:00","not_after":"2017-08-11T18:16:00","serial_number":"0304401a42f9bacb30c2f7832f312e63f233","result_count":2}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/bbb_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/bbb_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								cache/crtsh/c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								cache/crtsh/c214lb_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/c214lb_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"c214lb.kasserver.com","first_cached":"2025-09-15T11:50:40.061642+00:00","last_upstream_query":"2025-09-15T11:50:40.061644+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"test.c214lb.kasserver.com","name_value":"test.c214lb.kasserver.com\nwww.test.c214lb.kasserver.com","id":16070500096,"entry_timestamp":"2024-12-11T14:25:06.88","not_before":"2024-12-11T13:26:36","not_after":"2025-03-11T13:26:35","serial_number":"047e10af0f4b68375cc37572f400322f1339","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"test.c214lb.kasserver.com","name_value":"test.c214lb.kasserver.com\nwww.test.c214lb.kasserver.com","id":15713437449,"entry_timestamp":"2024-12-11T14:25:06.342","not_before":"2024-12-11T13:26:36","not_after":"2025-03-11T13:26:35","serial_number":"047e10af0f4b68375cc37572f400322f1339","result_count":3}]}
 | 
					{"domain":"c214lb.kasserver.com","first_cached":"2025-09-15T11:50:40.061642+00:00","last_upstream_query":"2025-09-15T20:11:09.844741+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"test.c214lb.kasserver.com","name_value":"test.c214lb.kasserver.com\nwww.test.c214lb.kasserver.com","id":16070500096,"entry_timestamp":"2024-12-11T14:25:06.88","not_before":"2024-12-11T13:26:36","not_after":"2025-03-11T13:26:35","serial_number":"047e10af0f4b68375cc37572f400322f1339","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"test.c214lb.kasserver.com","name_value":"test.c214lb.kasserver.com\nwww.test.c214lb.kasserver.com","id":15713437449,"entry_timestamp":"2024-12-11T14:25:06.342","not_before":"2024-12-11T13:26:36","not_after":"2025-03-11T13:26:35","serial_number":"047e10af0f4b68375cc37572f400322f1339","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/crits_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/crits_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"crits.c-rieger.de","first_cached":"2025-09-15T20:20:59.291414+00:00","last_upstream_query":"2025-09-15T20:20:59.291417+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14592304805,"entry_timestamp":"2024-09-18T06:31:47.157","not_before":"2024-09-18T05:33:16","not_after":"2024-12-17T05:33:15","serial_number":"0495474813e653ab923e45f3afaa292ad27d","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14592306942,"entry_timestamp":"2024-09-18T06:31:46.913","not_before":"2024-09-18T05:33:16","not_after":"2024-12-17T05:33:15","serial_number":"0495474813e653ab923e45f3afaa292ad27d","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14586115465,"entry_timestamp":"2024-09-17T16:57:40.152","not_before":"2024-09-17T15:59:09","not_after":"2024-12-16T15:59:08","serial_number":"040f7c9243e737e01d89ffe175c4d0cc5ffb","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14586110378,"entry_timestamp":"2024-09-17T16:57:39.803","not_before":"2024-09-17T15:59:09","not_after":"2024-12-16T15:59:08","serial_number":"040f7c9243e737e01d89ffe175c4d0cc5ffb","result_count":2},{"issuer_ca_id":295814,"issuer_name":"C=US, O=Let's Encrypt, CN=R10","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14586109541,"entry_timestamp":"2024-09-17T16:57:21.418","not_before":"2024-09-17T15:58:50","not_after":"2024-12-16T15:58:49","serial_number":"047de964fcf78cdcbf82280426a0db8874a1","result_count":2},{"issuer_ca_id":295814,"issuer_name":"C=US, O=Let's Encrypt, CN=R10","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14586125645,"entry_timestamp":"2024-09-17T16:57:21.154","not_before":"2024-09-17T15:58:50","not_after":"2024-12-16T15:58:49","serial_number":"047de964fcf78cdcbf82280426a0db8874a1","result_count":2},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14585478701,"entry_timestamp":"2024-09-17T15:48:16.953","not_before":"2024-09-17T14:49:46","not_after":"2024-12-16T14:49:45","serial_number":"04b5d66d204b5df2c306c3b413643be35c20","result_count":2},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"crits.c-rieger.de","name_value":"crits.c-rieger.de","id":14585473284,"entry_timestamp":"2024-09-17T15:48:16.721","not_before":"2024-09-17T14:49:46","not_after":"2024-12-16T14:49:45","serial_number":"04b5d66d204b5df2c306c3b413643be35c20","result_count":2}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd10032_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd10032_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd10032.kasserver.com","first_cached":"2025-09-15T11:49:39.835993+00:00","last_upstream_query":"2025-09-15T11:49:39.835996+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":19900983152,"entry_timestamp":"2025-07-25T15:08:27.328","not_before":"2025-07-25T14:09:55","not_after":"2025-10-23T14:09:54","serial_number":"053bbb3a5a38ad78a0298a2d7de184471db7","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":19900983133,"entry_timestamp":"2025-07-25T15:08:25.843","not_before":"2025-07-25T14:09:55","not_after":"2025-10-23T14:09:54","serial_number":"053bbb3a5a38ad78a0298a2d7de184471db7","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":18625008970,"entry_timestamp":"2025-05-26T02:06:09.384","not_before":"2025-05-26T01:07:39","not_after":"2025-08-24T01:07:38","serial_number":"05b1920c57feb37d80ab28e0a745fd4e5711","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":18625008687,"entry_timestamp":"2025-05-26T02:06:09.149","not_before":"2025-05-26T01:07:39","not_after":"2025-08-24T01:07:38","serial_number":"05b1920c57feb37d80ab28e0a745fd4e5711","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":17676635727,"entry_timestamp":"2025-03-18T15:24:41.197","not_before":"2025-03-18T14:26:10","not_after":"2025-06-16T14:26:09","serial_number":"05f4a3810f24e3916e04d2b092c864e92b04","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":17214728959,"entry_timestamp":"2025-03-18T15:24:40.996","not_before":"2025-03-18T14:26:10","not_after":"2025-06-16T14:26:09","serial_number":"05f4a3810f24e3916e04d2b092c864e92b04","result_count":3}]}
 | 
					{"domain":"dd10032.kasserver.com","first_cached":"2025-09-15T11:49:39.835993+00:00","last_upstream_query":"2025-09-15T20:12:27.234891+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":19900983152,"entry_timestamp":"2025-07-25T15:08:27.328","not_before":"2025-07-25T14:09:55","not_after":"2025-10-23T14:09:54","serial_number":"053bbb3a5a38ad78a0298a2d7de184471db7","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":19900983133,"entry_timestamp":"2025-07-25T15:08:25.843","not_before":"2025-07-25T14:09:55","not_after":"2025-10-23T14:09:54","serial_number":"053bbb3a5a38ad78a0298a2d7de184471db7","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":18625008970,"entry_timestamp":"2025-05-26T02:06:09.384","not_before":"2025-05-26T01:07:39","not_after":"2025-08-24T01:07:38","serial_number":"05b1920c57feb37d80ab28e0a745fd4e5711","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":18625008687,"entry_timestamp":"2025-05-26T02:06:09.149","not_before":"2025-05-26T01:07:39","not_after":"2025-08-24T01:07:38","serial_number":"05b1920c57feb37d80ab28e0a745fd4e5711","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":17676635727,"entry_timestamp":"2025-03-18T15:24:41.197","not_before":"2025-03-18T14:26:10","not_after":"2025-06-16T14:26:09","serial_number":"05f4a3810f24e3916e04d2b092c864e92b04","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd10032.kasserver.com","name_value":"wernertest.dd10032.kasserver.com\nwww.wernertest.dd10032.kasserver.com","id":17214728959,"entry_timestamp":"2025-03-18T15:24:40.996","not_before":"2025-03-18T14:26:10","not_after":"2025-06-16T14:26:09","serial_number":"05f4a3810f24e3916e04d2b092c864e92b04","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd15000_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd15000_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd15000.kasserver.com","first_cached":"2025-09-15T11:49:51.832307+00:00","last_upstream_query":"2025-09-15T11:49:51.832313+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"litera.dd15000.kasserver.com","name_value":"litera.dd15000.kasserver.com\nwww.litera.dd15000.kasserver.com","id":17806830,"entry_timestamp":"2016-05-03T09:27:49.724","not_before":"2016-05-03T08:28:00","not_after":"2016-08-01T08:28:00","serial_number":"030cb7992941a2b2860858446a989170f2db","result_count":3}]}
 | 
					{"domain":"dd15000.kasserver.com","first_cached":"2025-09-15T11:49:51.832307+00:00","last_upstream_query":"2025-09-15T20:07:56.889818+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"litera.dd15000.kasserver.com","name_value":"litera.dd15000.kasserver.com\nwww.litera.dd15000.kasserver.com","id":17806830,"entry_timestamp":"2016-05-03T09:27:49.724","not_before":"2016-05-03T08:28:00","not_after":"2016-08-01T08:28:00","serial_number":"030cb7992941a2b2860858446a989170f2db","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd17120_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd17120_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd17120.kasserver.com","first_cached":"2025-09-15T11:50:52.134823+00:00","last_upstream_query":"2025-09-15T11:50:52.134826+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820560694,"entry_timestamp":"2020-12-23T15:35:32.403","not_before":"2020-12-23T14:35:32","not_after":"2021-03-23T14:35:32","serial_number":"04c92961dbb2d095ce5690f41ab75431abed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820561611,"entry_timestamp":"2020-12-23T15:35:32.275","not_before":"2020-12-23T14:35:32","not_after":"2021-03-23T14:35:32","serial_number":"04c92961dbb2d095ce5690f41ab75431abed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820541026,"entry_timestamp":"2020-12-23T15:29:20.032","not_before":"2020-12-23T14:29:19","not_after":"2021-03-23T14:29:19","serial_number":"03446bb8f1a87b4f0cb40fd1030125240eed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820541140,"entry_timestamp":"2020-12-23T15:29:19.847","not_before":"2020-12-23T14:29:19","not_after":"2021-03-23T14:29:19","serial_number":"03446bb8f1a87b4f0cb40fd1030125240eed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820538580,"entry_timestamp":"2020-12-23T15:28:46.532","not_before":"2020-12-23T14:28:46","not_after":"2021-03-23T14:28:46","serial_number":"03c3eb90d764b2c2a0ac04beed2e876f03e1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820538531,"entry_timestamp":"2020-12-23T15:28:46.312","not_before":"2020-12-23T14:28:46","not_after":"2021-03-23T14:28:46","serial_number":"03c3eb90d764b2c2a0ac04beed2e876f03e1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820537101,"entry_timestamp":"2020-12-23T15:28:12.742","not_before":"2020-12-23T14:28:12","not_after":"2021-03-23T14:28:12","serial_number":"034cd7432ae3dba0e76509de60666d58f1e4","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820537306,"entry_timestamp":"2020-12-23T15:28:12.459","not_before":"2020-12-23T14:28:12","not_after":"2021-03-23T14:28:12","serial_number":"034cd7432ae3dba0e76509de60666d58f1e4","result_count":3}]}
 | 
					{"domain":"dd17120.kasserver.com","first_cached":"2025-09-15T11:50:52.134823+00:00","last_upstream_query":"2025-09-15T20:07:32.801432+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820560694,"entry_timestamp":"2020-12-23T15:35:32.403","not_before":"2020-12-23T14:35:32","not_after":"2021-03-23T14:35:32","serial_number":"04c92961dbb2d095ce5690f41ab75431abed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820561611,"entry_timestamp":"2020-12-23T15:35:32.275","not_before":"2020-12-23T14:35:32","not_after":"2021-03-23T14:35:32","serial_number":"04c92961dbb2d095ce5690f41ab75431abed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820541026,"entry_timestamp":"2020-12-23T15:29:20.032","not_before":"2020-12-23T14:29:19","not_after":"2021-03-23T14:29:19","serial_number":"03446bb8f1a87b4f0cb40fd1030125240eed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820541140,"entry_timestamp":"2020-12-23T15:29:19.847","not_before":"2020-12-23T14:29:19","not_after":"2021-03-23T14:29:19","serial_number":"03446bb8f1a87b4f0cb40fd1030125240eed","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820538580,"entry_timestamp":"2020-12-23T15:28:46.532","not_before":"2020-12-23T14:28:46","not_after":"2021-03-23T14:28:46","serial_number":"03c3eb90d764b2c2a0ac04beed2e876f03e1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820538531,"entry_timestamp":"2020-12-23T15:28:46.312","not_before":"2020-12-23T14:28:46","not_after":"2021-03-23T14:28:46","serial_number":"03c3eb90d764b2c2a0ac04beed2e876f03e1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820537101,"entry_timestamp":"2020-12-23T15:28:12.742","not_before":"2020-12-23T14:28:12","not_after":"2021-03-23T14:28:12","serial_number":"034cd7432ae3dba0e76509de60666d58f1e4","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"letest.dd17120.kasserver.com","name_value":"letest.dd17120.kasserver.com\nwww.letest.dd17120.kasserver.com","id":3820537306,"entry_timestamp":"2020-12-23T15:28:12.459","not_before":"2020-12-23T14:28:12","not_after":"2021-03-23T14:28:12","serial_number":"034cd7432ae3dba0e76509de60666d58f1e4","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd18904_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd18904_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd18904.kasserver.com","first_cached":"2025-09-15T11:49:03.689534+00:00","last_upstream_query":"2025-09-15T11:49:03.689540+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766495494,"entry_timestamp":"2022-05-20T07:44:34.589","not_before":"2022-05-20T06:44:34","not_after":"2022-08-18T06:44:33","serial_number":"046fc2606fb3d5e6438be8586ff20e296e8e","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766489032,"entry_timestamp":"2022-05-20T07:44:34.335","not_before":"2022-05-20T06:44:34","not_after":"2022-08-18T06:44:33","serial_number":"046fc2606fb3d5e6438be8586ff20e296e8e","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766485621,"entry_timestamp":"2022-05-20T07:42:24.52","not_before":"2022-05-20T06:42:24","not_after":"2022-08-18T06:42:23","serial_number":"03a52deebc041d7b6b4246ec8fc0455345a8","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766485609,"entry_timestamp":"2022-05-20T07:42:24.413","not_before":"2022-05-20T06:42:24","not_after":"2022-08-18T06:42:23","serial_number":"03a52deebc041d7b6b4246ec8fc0455345a8","result_count":3}]}
 | 
					{"domain":"dd18904.kasserver.com","first_cached":"2025-09-15T11:49:03.689534+00:00","last_upstream_query":"2025-09-15T20:11:34.057534+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766495494,"entry_timestamp":"2022-05-20T07:44:34.589","not_before":"2022-05-20T06:44:34","not_after":"2022-08-18T06:44:33","serial_number":"046fc2606fb3d5e6438be8586ff20e296e8e","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766489032,"entry_timestamp":"2022-05-20T07:44:34.335","not_before":"2022-05-20T06:44:34","not_after":"2022-08-18T06:44:33","serial_number":"046fc2606fb3d5e6438be8586ff20e296e8e","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766485621,"entry_timestamp":"2022-05-20T07:42:24.52","not_before":"2022-05-20T06:42:24","not_after":"2022-08-18T06:42:23","serial_number":"03a52deebc041d7b6b4246ec8fc0455345a8","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"thomas.dd18904.kasserver.com","name_value":"thomas.dd18904.kasserver.com\nwww.thomas.dd18904.kasserver.com","id":6766485609,"entry_timestamp":"2022-05-20T07:42:24.413","not_before":"2022-05-20T06:42:24","not_after":"2022-08-18T06:42:23","serial_number":"03a52deebc041d7b6b4246ec8fc0455345a8","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd19536_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd19536_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd19536.kasserver.com","first_cached":"2025-09-15T11:47:57.902219+00:00","last_upstream_query":"2025-09-15T11:47:57.902224+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"login.jitsi.dd19536.kasserver.com","name_value":"login.jitsi.dd19536.kasserver.com\nwww.login.jitsi.dd19536.kasserver.com","id":14154546767,"entry_timestamp":"2024-08-12T05:52:06.917","not_before":"2024-08-12T04:53:36","not_after":"2024-11-10T04:53:35","serial_number":"04fca7ec58a44a09702875c5d2c6c9d6401b","result_count":3},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"login.jitsi.dd19536.kasserver.com","name_value":"login.jitsi.dd19536.kasserver.com\nwww.login.jitsi.dd19536.kasserver.com","id":14108590090,"entry_timestamp":"2024-08-12T05:52:06.531","not_before":"2024-08-12T04:53:36","not_after":"2024-11-10T04:53:35","serial_number":"04fca7ec58a44a09702875c5d2c6c9d6401b","result_count":3}]}
 | 
					{"domain":"dd19536.kasserver.com","first_cached":"2025-09-15T11:47:57.902219+00:00","last_upstream_query":"2025-09-15T20:08:09.358320+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"login.jitsi.dd19536.kasserver.com","name_value":"login.jitsi.dd19536.kasserver.com\nwww.login.jitsi.dd19536.kasserver.com","id":14154546767,"entry_timestamp":"2024-08-12T05:52:06.917","not_before":"2024-08-12T04:53:36","not_after":"2024-11-10T04:53:35","serial_number":"04fca7ec58a44a09702875c5d2c6c9d6401b","result_count":3},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"login.jitsi.dd19536.kasserver.com","name_value":"login.jitsi.dd19536.kasserver.com\nwww.login.jitsi.dd19536.kasserver.com","id":14108590090,"entry_timestamp":"2024-08-12T05:52:06.531","not_before":"2024-08-12T04:53:36","not_after":"2024-11-10T04:53:35","serial_number":"04fca7ec58a44a09702875c5d2c6c9d6401b","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd24432_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd24432_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd24432.kasserver.com","first_cached":"2025-09-15T11:51:28.290098+00:00","last_upstream_query":"2025-09-15T11:51:28.290102+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"test1.dd24432.kasserver.com","name_value":"test1.dd24432.kasserver.com\nwww.test1.dd24432.kasserver.com","id":157863863,"entry_timestamp":"2017-06-20T11:17:00.314","not_before":"2017-06-20T10:17:00","not_after":"2017-09-18T10:17:00","serial_number":"03c833715204594e6946b183652f0be2055e","result_count":3}]}
 | 
					{"domain":"dd24432.kasserver.com","first_cached":"2025-09-15T11:51:28.290098+00:00","last_upstream_query":"2025-09-15T20:11:21.838646+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"test1.dd24432.kasserver.com","name_value":"test1.dd24432.kasserver.com\nwww.test1.dd24432.kasserver.com","id":157863863,"entry_timestamp":"2017-06-20T11:17:00.314","not_before":"2017-06-20T10:17:00","not_after":"2017-09-18T10:17:00","serial_number":"03c833715204594e6946b183652f0be2055e","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd27030_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd27030_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd27030.kasserver.com","first_cached":"2025-09-15T11:48:39.556778+00:00","last_upstream_query":"2025-09-15T11:48:39.556783+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd27030.kasserver.com","name_value":"wernertest.dd27030.kasserver.com\nwww.wernertest.dd27030.kasserver.com","id":17324952949,"entry_timestamp":"2025-03-19T12:30:16.583","not_before":"2025-03-19T11:31:44","not_after":"2025-06-17T11:31:43","serial_number":"0686091c483d6c1a55f241d41c29523fc3f0","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd27030.kasserver.com","name_value":"wernertest.dd27030.kasserver.com\nwww.wernertest.dd27030.kasserver.com","id":17314228622,"entry_timestamp":"2025-03-19T12:30:14.317","not_before":"2025-03-19T11:31:44","not_after":"2025-06-17T11:31:43","serial_number":"0686091c483d6c1a55f241d41c29523fc3f0","result_count":3}]}
 | 
					{"domain":"dd27030.kasserver.com","first_cached":"2025-09-15T11:48:39.556778+00:00","last_upstream_query":"2025-09-15T20:12:34.402270+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd27030.kasserver.com","name_value":"wernertest.dd27030.kasserver.com\nwww.wernertest.dd27030.kasserver.com","id":17324952949,"entry_timestamp":"2025-03-19T12:30:16.583","not_before":"2025-03-19T11:31:44","not_after":"2025-06-17T11:31:43","serial_number":"0686091c483d6c1a55f241d41c29523fc3f0","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd27030.kasserver.com","name_value":"wernertest.dd27030.kasserver.com\nwww.wernertest.dd27030.kasserver.com","id":17314228622,"entry_timestamp":"2025-03-19T12:30:14.317","not_before":"2025-03-19T11:31:44","not_after":"2025-06-17T11:31:43","serial_number":"0686091c483d6c1a55f241d41c29523fc3f0","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd27120_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd27120_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd27120.kasserver.com","first_cached":"2025-09-15T11:47:51.800693+00:00","last_upstream_query":"2025-09-15T11:47:51.800697+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1476617768,"entry_timestamp":"2019-05-09T10:40:20.848","not_before":"2019-05-09T09:40:19","not_after":"2019-08-07T09:40:19","serial_number":"0342616d062ef6933a703e4de279da4e38b6","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1458597695,"entry_timestamp":"2019-05-09T10:40:20.006","not_before":"2019-05-09T09:40:19","not_after":"2019-08-07T09:40:19","serial_number":"0342616d062ef6933a703e4de279da4e38b6","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1476589088,"entry_timestamp":"2019-05-09T10:17:27.514","not_before":"2019-05-09T09:17:26","not_after":"2019-08-07T09:17:26","serial_number":"0398319827847d1df54260d7273cd5ea6d5c","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1457806572,"entry_timestamp":"2019-05-09T10:17:26.68","not_before":"2019-05-09T09:17:26","not_after":"2019-08-07T09:17:26","serial_number":"0398319827847d1df54260d7273cd5ea6d5c","result_count":3}]}
 | 
					{"domain":"dd27120.kasserver.com","first_cached":"2025-09-15T11:47:51.800693+00:00","last_upstream_query":"2025-09-15T20:10:33.970585+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1476617768,"entry_timestamp":"2019-05-09T10:40:20.848","not_before":"2019-05-09T09:40:19","not_after":"2019-08-07T09:40:19","serial_number":"0342616d062ef6933a703e4de279da4e38b6","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1458597695,"entry_timestamp":"2019-05-09T10:40:20.006","not_before":"2019-05-09T09:40:19","not_after":"2019-08-07T09:40:19","serial_number":"0342616d062ef6933a703e4de279da4e38b6","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1476589088,"entry_timestamp":"2019-05-09T10:17:27.514","not_before":"2019-05-09T09:17:26","not_after":"2019-08-07T09:17:26","serial_number":"0398319827847d1df54260d7273cd5ea6d5c","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"otrs2.dd27120.kasserver.com","name_value":"otrs2.dd27120.kasserver.com\nwww.otrs2.dd27120.kasserver.com","id":1457806572,"entry_timestamp":"2019-05-09T10:17:26.68","not_before":"2019-05-09T09:17:26","not_after":"2019-08-07T09:17:26","serial_number":"0398319827847d1df54260d7273cd5ea6d5c","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd27932_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd27932_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd27932.kasserver.com","first_cached":"2025-09-15T11:48:51.718464+00:00","last_upstream_query":"2025-09-15T11:48:51.718468+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"switest.dd27932.kasserver.com","name_value":"switest.dd27932.kasserver.com\nwww.switest.dd27932.kasserver.com","id":99317583,"entry_timestamp":"2017-03-05T01:00:32.21","not_before":"2017-03-05T00:01:00","not_after":"2017-06-03T00:01:00","serial_number":"03e0f1fb8ff2a8a742ee45c2da39e4bd68ed","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"switest.dd27932.kasserver.com","name_value":"switest.dd27932.kasserver.com\nwww.switest.dd27932.kasserver.com","id":69451932,"entry_timestamp":"2016-12-21T10:01:06.051","not_before":"2016-12-21T09:01:00","not_after":"2017-03-21T09:01:00","serial_number":"03a4f79d5ed3c6661f6f2c430a1a1546e0d8","result_count":3}]}
 | 
					{"domain":"dd27932.kasserver.com","first_cached":"2025-09-15T11:48:51.718464+00:00","last_upstream_query":"2025-09-15T20:10:47.362818+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"switest.dd27932.kasserver.com","name_value":"switest.dd27932.kasserver.com\nwww.switest.dd27932.kasserver.com","id":99317583,"entry_timestamp":"2017-03-05T01:00:32.21","not_before":"2017-03-05T00:01:00","not_after":"2017-06-03T00:01:00","serial_number":"03e0f1fb8ff2a8a742ee45c2da39e4bd68ed","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"switest.dd27932.kasserver.com","name_value":"switest.dd27932.kasserver.com\nwww.switest.dd27932.kasserver.com","id":69451932,"entry_timestamp":"2016-12-21T10:01:06.051","not_before":"2016-12-21T09:01:00","not_after":"2017-03-21T09:01:00","serial_number":"03a4f79d5ed3c6661f6f2c430a1a1546e0d8","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd28826_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd28826_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd28826.kasserver.com","first_cached":"2025-09-15T11:50:28.011163+00:00","last_upstream_query":"2025-09-15T11:50:28.011167+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"161gs86116.dd28826.kasserver.com","name_value":"161gs86116.dd28826.kasserver.com\nwww.161gs86116.dd28826.kasserver.com","id":138535930,"entry_timestamp":"2017-05-15T11:15:13.509","not_before":"2017-05-15T10:15:00","not_after":"2017-08-13T10:15:00","serial_number":"03bca24f2de29889f514c04523a1f8945136","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"161gs86116.dd28826.kasserver.com","name_value":"161gs86116.dd28826.kasserver.com\nwww.161gs86116.dd28826.kasserver.com","id":40903630,"entry_timestamp":"2016-10-07T12:00:36.009","not_before":"2016-10-07T11:01:00","not_after":"2017-01-05T11:01:00","serial_number":"0385d74f0a39572de61c2b7765c94d848c82","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"161gs86116.dd28826.kasserver.com","name_value":"161gs86116.dd28826.kasserver.com\nwww.161gs86116.dd28826.kasserver.com","id":40901166,"entry_timestamp":"2016-10-07T11:54:34.702","not_before":"2016-10-07T10:55:00","not_after":"2017-01-05T10:55:00","serial_number":"039ef12598cb7aaf33c04d4c90983b0829fe","result_count":3}]}
 | 
					{"domain":"dd28826.kasserver.com","first_cached":"2025-09-15T11:50:28.011163+00:00","last_upstream_query":"2025-09-15T20:06:16.205689+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"161gs86116.dd28826.kasserver.com","name_value":"161gs86116.dd28826.kasserver.com\nwww.161gs86116.dd28826.kasserver.com","id":138535930,"entry_timestamp":"2017-05-15T11:15:13.509","not_before":"2017-05-15T10:15:00","not_after":"2017-08-13T10:15:00","serial_number":"03bca24f2de29889f514c04523a1f8945136","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"161gs86116.dd28826.kasserver.com","name_value":"161gs86116.dd28826.kasserver.com\nwww.161gs86116.dd28826.kasserver.com","id":40903630,"entry_timestamp":"2016-10-07T12:00:36.009","not_before":"2016-10-07T11:01:00","not_after":"2017-01-05T11:01:00","serial_number":"0385d74f0a39572de61c2b7765c94d848c82","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"161gs86116.dd28826.kasserver.com","name_value":"161gs86116.dd28826.kasserver.com\nwww.161gs86116.dd28826.kasserver.com","id":40901166,"entry_timestamp":"2016-10-07T11:54:34.702","not_before":"2016-10-07T10:55:00","not_after":"2017-01-05T10:55:00","serial_number":"039ef12598cb7aaf33c04d4c90983b0829fe","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd30002_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd30002_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								cache/crtsh/dd39314_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd39314_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd39314.kasserver.com","first_cached":"2025-09-15T11:47:59.899335+00:00","last_upstream_query":"2025-09-15T11:47:59.899339+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"http2.dd39314.kasserver.com","name_value":"http2.dd39314.kasserver.com\nwww.http2.dd39314.kasserver.com","id":35834556,"entry_timestamp":"2016-09-27T11:27:08.538","not_before":"2016-09-27T10:27:00","not_after":"2016-12-26T10:27:00","serial_number":"03024be246b9452e3e5e7dbed7e502a1ee16","result_count":3}]}
 | 
					{"domain":"dd39314.kasserver.com","first_cached":"2025-09-15T11:47:59.899335+00:00","last_upstream_query":"2025-09-15T20:06:56.714531+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"http2.dd39314.kasserver.com","name_value":"http2.dd39314.kasserver.com\nwww.http2.dd39314.kasserver.com","id":35834556,"entry_timestamp":"2016-09-27T11:27:08.538","not_before":"2016-09-27T10:27:00","not_after":"2016-12-26T10:27:00","serial_number":"03024be246b9452e3e5e7dbed7e502a1ee16","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd39910_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd39910_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								cache/crtsh/dd44624_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd44624_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd44624.kasserver.com","first_cached":"2025-09-15T11:50:16.030946+00:00","last_upstream_query":"2025-09-15T11:50:16.030952+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"aitest.dd44624.kasserver.com","name_value":"aitest.dd44624.kasserver.com\nwww.aitest.dd44624.kasserver.com","id":2366400329,"entry_timestamp":"2020-01-21T09:28:49.996","not_before":"2020-01-21T08:28:49","not_after":"2020-04-20T08:28:49","serial_number":"0319ee129ecf09b2a08a98d6cd7d92062efe","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"aitest.dd44624.kasserver.com","name_value":"aitest.dd44624.kasserver.com\nwww.aitest.dd44624.kasserver.com","id":2355073809,"entry_timestamp":"2020-01-21T09:28:49.389","not_before":"2020-01-21T08:28:49","not_after":"2020-04-20T08:28:49","serial_number":"0319ee129ecf09b2a08a98d6cd7d92062efe","result_count":3}]}
 | 
					{"domain":"dd44624.kasserver.com","first_cached":"2025-09-15T11:50:16.030946+00:00","last_upstream_query":"2025-09-15T20:06:32.580558+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"aitest.dd44624.kasserver.com","name_value":"aitest.dd44624.kasserver.com\nwww.aitest.dd44624.kasserver.com","id":2366400329,"entry_timestamp":"2020-01-21T09:28:49.996","not_before":"2020-01-21T08:28:49","not_after":"2020-04-20T08:28:49","serial_number":"0319ee129ecf09b2a08a98d6cd7d92062efe","result_count":3},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"aitest.dd44624.kasserver.com","name_value":"aitest.dd44624.kasserver.com\nwww.aitest.dd44624.kasserver.com","id":2355073809,"entry_timestamp":"2020-01-21T09:28:49.389","not_before":"2020-01-21T08:28:49","not_after":"2020-04-20T08:28:49","serial_number":"0319ee129ecf09b2a08a98d6cd7d92062efe","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd46900_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd46900_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd46900.kasserver.com","first_cached":"2025-09-15T11:49:27.811675+00:00","last_upstream_query":"2025-09-15T11:49:27.811679+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":19891708696,"entry_timestamp":"2025-07-25T04:48:43.91","not_before":"2025-07-25T03:50:12","not_after":"2025-10-23T03:50:11","serial_number":"06ab9c27b7c779ee95cb82b66f985d87601c","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":19891706706,"entry_timestamp":"2025-07-25T04:48:42.387","not_before":"2025-07-25T03:50:12","not_after":"2025-10-23T03:50:11","serial_number":"06ab9c27b7c779ee95cb82b66f985d87601c","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":18618700336,"entry_timestamp":"2025-05-25T17:22:29.664","not_before":"2025-05-25T16:23:59","not_after":"2025-08-23T16:23:58","serial_number":"05abb39369b76694a079e1109a93e616bf18","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":18618704556,"entry_timestamp":"2025-05-25T17:22:29.449","not_before":"2025-05-25T16:23:59","not_after":"2025-08-23T16:23:58","serial_number":"05abb39369b76694a079e1109a93e616bf18","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":17676537327,"entry_timestamp":"2025-03-18T15:18:10.621","not_before":"2025-03-18T14:19:39","not_after":"2025-06-16T14:19:38","serial_number":"0610cb215ef16b2619af24f76349e349939c","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":17230420365,"entry_timestamp":"2025-03-18T15:18:09.941","not_before":"2025-03-18T14:19:39","not_after":"2025-06-16T14:19:38","serial_number":"0610cb215ef16b2619af24f76349e349939c","result_count":3}]}
 | 
					{"domain":"dd46900.kasserver.com","first_cached":"2025-09-15T11:49:27.811675+00:00","last_upstream_query":"2025-09-15T20:12:46.249939+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":19891708696,"entry_timestamp":"2025-07-25T04:48:43.91","not_before":"2025-07-25T03:50:12","not_after":"2025-10-23T03:50:11","serial_number":"06ab9c27b7c779ee95cb82b66f985d87601c","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":19891706706,"entry_timestamp":"2025-07-25T04:48:42.387","not_before":"2025-07-25T03:50:12","not_after":"2025-10-23T03:50:11","serial_number":"06ab9c27b7c779ee95cb82b66f985d87601c","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":18618700336,"entry_timestamp":"2025-05-25T17:22:29.664","not_before":"2025-05-25T16:23:59","not_after":"2025-08-23T16:23:58","serial_number":"05abb39369b76694a079e1109a93e616bf18","result_count":3},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":18618704556,"entry_timestamp":"2025-05-25T17:22:29.449","not_before":"2025-05-25T16:23:59","not_after":"2025-08-23T16:23:58","serial_number":"05abb39369b76694a079e1109a93e616bf18","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":17676537327,"entry_timestamp":"2025-03-18T15:18:10.621","not_before":"2025-03-18T14:19:39","not_after":"2025-06-16T14:19:38","serial_number":"0610cb215ef16b2619af24f76349e349939c","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"wernertest.dd46900.kasserver.com","name_value":"wernertest.dd46900.kasserver.com\nwww.wernertest.dd46900.kasserver.com","id":17230420365,"entry_timestamp":"2025-03-18T15:18:09.941","not_before":"2025-03-18T14:19:39","not_after":"2025-06-16T14:19:38","serial_number":"0610cb215ef16b2619af24f76349e349939c","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/dd55600_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/dd55600_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"dd55600.kasserver.com","first_cached":"2025-09-15T11:47:55.878914+00:00","last_upstream_query":"2025-09-15T11:47:55.878918+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"letest.dd55600.kasserver.com","name_value":"letest.dd55600.kasserver.com\nwww.letest.dd55600.kasserver.com","id":20031222371,"entry_timestamp":"2025-07-31T13:43:52.442","not_before":"2025-07-31T12:45:20","not_after":"2025-10-29T12:45:19","serial_number":"06eb0a6229e52eabee01d67ad7a999665794","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"letest.dd55600.kasserver.com","name_value":"letest.dd55600.kasserver.com\nwww.letest.dd55600.kasserver.com","id":20031228125,"entry_timestamp":"2025-07-31T13:43:50.126","not_before":"2025-07-31T12:45:20","not_after":"2025-10-29T12:45:19","serial_number":"06eb0a6229e52eabee01d67ad7a999665794","result_count":3}]}
 | 
					{"domain":"dd55600.kasserver.com","first_cached":"2025-09-15T11:47:55.878914+00:00","last_upstream_query":"2025-09-15T20:07:44.890004+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"letest.dd55600.kasserver.com","name_value":"letest.dd55600.kasserver.com\nwww.letest.dd55600.kasserver.com","id":20031222371,"entry_timestamp":"2025-07-31T13:43:52.442","not_before":"2025-07-31T12:45:20","not_after":"2025-10-29T12:45:19","serial_number":"06eb0a6229e52eabee01d67ad7a999665794","result_count":3},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"letest.dd55600.kasserver.com","name_value":"letest.dd55600.kasserver.com\nwww.letest.dd55600.kasserver.com","id":20031228125,"entry_timestamp":"2025-07-31T13:43:50.126","not_before":"2025-07-31T12:45:20","not_after":"2025-10-29T12:45:19","serial_number":"06eb0a6229e52eabee01d67ad7a999665794","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/hosting_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/hosting_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"hosting.c-rieger.de","first_cached":"2025-09-15T20:20:46.079098+00:00","last_upstream_query":"2025-09-15T20:20:46.079104+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"hosting.c-rieger.de","name_value":"hosting.c-rieger.de","id":7809694248,"entry_timestamp":"2022-10-21T19:09:19.923","not_before":"2022-10-21T18:09:19","not_after":"2023-01-19T18:09:18","serial_number":"03f400400404732523ce685fb27a793b18ad","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"hosting.c-rieger.de","name_value":"hosting.c-rieger.de","id":7804912029,"entry_timestamp":"2022-10-21T19:09:19.25","not_before":"2022-10-21T18:09:19","not_after":"2023-01-19T18:09:18","serial_number":"03f400400404732523ce685fb27a793b18ad","result_count":2}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								cache/crtsh/kvmtest2_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/kvmtest2_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"kvmtest2.kasserver.com","first_cached":"2025-09-15T11:48:15.510962+00:00","last_upstream_query":"2025-09-15T11:48:15.510965+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11872742578,"entry_timestamp":"2024-01-26T08:07:49.508","not_before":"2024-01-26T07:07:49","not_after":"2024-04-25T07:07:48","serial_number":"033a4ebc78836fabf49336d55237d61606b1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11872748114,"entry_timestamp":"2024-01-26T08:07:49.316","not_before":"2024-01-26T07:07:49","not_after":"2024-04-25T07:07:48","serial_number":"033a4ebc78836fabf49336d55237d61606b1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11867647719,"entry_timestamp":"2024-01-25T21:52:18.981","not_before":"2024-01-25T20:52:18","not_after":"2024-04-24T20:52:17","serial_number":"03e7aa261a2cd46d7de1f7a140b4a798eb21","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11867647704,"entry_timestamp":"2024-01-25T21:52:18.671","not_before":"2024-01-25T20:52:18","not_after":"2024-04-24T20:52:17","serial_number":"03e7aa261a2cd46d7de1f7a140b4a798eb21","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11864252076,"entry_timestamp":"2024-01-25T14:44:38.589","not_before":"2024-01-25T13:44:38","not_after":"2024-04-24T13:44:37","serial_number":"03542eac1a93d9a614ab26535b70ea26a6a5","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11864248841,"entry_timestamp":"2024-01-25T14:44:38.505","not_before":"2024-01-25T13:44:38","not_after":"2024-04-24T13:44:37","serial_number":"03542eac1a93d9a614ab26535b70ea26a6a5","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11853852174,"entry_timestamp":"2024-01-24T14:39:08.051","not_before":"2024-01-24T13:39:06","not_after":"2024-04-23T13:39:05","serial_number":"047335e6361f4c5477b088ff8cd2719d4d9a","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11853852409,"entry_timestamp":"2024-01-24T14:39:07.46","not_before":"2024-01-24T13:39:06","not_after":"2024-04-23T13:39:05","serial_number":"047335e6361f4c5477b088ff8cd2719d4d9a","result_count":3}]}
 | 
					{"domain":"kvmtest2.kasserver.com","first_cached":"2025-09-15T11:48:15.510962+00:00","last_upstream_query":"2025-09-15T20:08:57.254194+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11872742578,"entry_timestamp":"2024-01-26T08:07:49.508","not_before":"2024-01-26T07:07:49","not_after":"2024-04-25T07:07:48","serial_number":"033a4ebc78836fabf49336d55237d61606b1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11872748114,"entry_timestamp":"2024-01-26T08:07:49.316","not_before":"2024-01-26T07:07:49","not_after":"2024-04-25T07:07:48","serial_number":"033a4ebc78836fabf49336d55237d61606b1","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11867647719,"entry_timestamp":"2024-01-25T21:52:18.981","not_before":"2024-01-25T20:52:18","not_after":"2024-04-24T20:52:17","serial_number":"03e7aa261a2cd46d7de1f7a140b4a798eb21","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11867647704,"entry_timestamp":"2024-01-25T21:52:18.671","not_before":"2024-01-25T20:52:18","not_after":"2024-04-24T20:52:17","serial_number":"03e7aa261a2cd46d7de1f7a140b4a798eb21","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11864252076,"entry_timestamp":"2024-01-25T14:44:38.589","not_before":"2024-01-25T13:44:38","not_after":"2024-04-24T13:44:37","serial_number":"03542eac1a93d9a614ab26535b70ea26a6a5","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11864248841,"entry_timestamp":"2024-01-25T14:44:38.505","not_before":"2024-01-25T13:44:38","not_after":"2024-04-24T13:44:37","serial_number":"03542eac1a93d9a614ab26535b70ea26a6a5","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11853852174,"entry_timestamp":"2024-01-24T14:39:08.051","not_before":"2024-01-24T13:39:06","not_after":"2024-04-23T13:39:05","serial_number":"047335e6361f4c5477b088ff8cd2719d4d9a","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmtest2.kasserver.com","name_value":"nextcloud.kvmtest2.kasserver.com\nwww.nextcloud.kvmtest2.kasserver.com","id":11853852409,"entry_timestamp":"2024-01-24T14:39:07.46","not_before":"2024-01-24T13:39:06","not_after":"2024-04-23T13:39:05","serial_number":"047335e6361f4c5477b088ff8cd2719d4d9a","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/kvmthkr_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/kvmthkr_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"kvmthkr.kasserver.com","first_cached":"2025-09-15T11:50:03.952251+00:00","last_upstream_query":"2025-09-15T11:50:03.952256+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":105484,"issuer_name":"C=GB, ST=Greater Manchester, L=Salford, O=Sectigo Limited, CN=Sectigo ECC Domain Validation Secure Server CA","common_name":"ec.kvmthkr.kasserver.com","name_value":"ec.kvmthkr.kasserver.com\nwww.ec.kvmthkr.kasserver.com","id":14939726486,"entry_timestamp":"2024-10-15T07:02:39.33","not_before":"2024-10-15T00:00:00","not_after":"2024-11-14T23:59:59","serial_number":"6827c362ad3905799d6a865b0f1f60f8","result_count":3},{"issuer_ca_id":105484,"issuer_name":"C=GB, ST=Greater Manchester, L=Salford, O=Sectigo Limited, CN=Sectigo ECC Domain Validation Secure Server CA","common_name":"ec.kvmthkr.kasserver.com","name_value":"ec.kvmthkr.kasserver.com\nwww.ec.kvmthkr.kasserver.com","id":14939726540,"entry_timestamp":"2024-10-15T07:02:38.057","not_before":"2024-10-15T00:00:00","not_after":"2024-11-14T23:59:59","serial_number":"6827c362ad3905799d6a865b0f1f60f8","result_count":3}]}
 | 
					{"domain":"kvmthkr.kasserver.com","first_cached":"2025-09-15T11:50:03.952251+00:00","last_upstream_query":"2025-09-15T20:07:08.699845+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":105484,"issuer_name":"C=GB, ST=Greater Manchester, L=Salford, O=Sectigo Limited, CN=Sectigo ECC Domain Validation Secure Server CA","common_name":"ec.kvmthkr.kasserver.com","name_value":"ec.kvmthkr.kasserver.com\nwww.ec.kvmthkr.kasserver.com","id":14939726486,"entry_timestamp":"2024-10-15T07:02:39.33","not_before":"2024-10-15T00:00:00","not_after":"2024-11-14T23:59:59","serial_number":"6827c362ad3905799d6a865b0f1f60f8","result_count":3},{"issuer_ca_id":105484,"issuer_name":"C=GB, ST=Greater Manchester, L=Salford, O=Sectigo Limited, CN=Sectigo ECC Domain Validation Secure Server CA","common_name":"ec.kvmthkr.kasserver.com","name_value":"ec.kvmthkr.kasserver.com\nwww.ec.kvmthkr.kasserver.com","id":14939726540,"entry_timestamp":"2024-10-15T07:02:38.057","not_before":"2024-10-15T00:00:00","not_after":"2024-11-14T23:59:59","serial_number":"6827c362ad3905799d6a865b0f1f60f8","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/kvmu12s1_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/kvmu12s1_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"domain":"kvmu12s1.kasserver.com","first_cached":"2025-09-15T11:51:04.220452+00:00","last_upstream_query":"2025-09-15T11:51:04.220456+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":10586150052,"entry_timestamp":"2023-09-15T10:36:49.311","not_before":"2023-09-15T09:36:48","not_after":"2023-12-14T09:36:47","serial_number":"045dedd31035da18a73d26fe8a4f963f6eef","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":10577792024,"entry_timestamp":"2023-09-15T10:36:49.018","not_before":"2023-09-15T09:36:48","not_after":"2023-12-14T09:36:47","serial_number":"045dedd31035da18a73d26fe8a4f963f6eef","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":9948906308,"entry_timestamp":"2023-07-14T08:26:39.958","not_before":"2023-07-14T07:26:39","not_after":"2023-10-12T07:26:38","serial_number":"035e2fe150728c3a351990f06dab0a9b29b7","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":9905731790,"entry_timestamp":"2023-07-14T08:26:39.811","not_before":"2023-07-14T07:26:39","not_after":"2023-10-12T07:26:38","serial_number":"035e2fe150728c3a351990f06dab0a9b29b7","result_count":3}]}
 | 
					{"domain":"kvmu12s1.kasserver.com","first_cached":"2025-09-15T11:51:04.220452+00:00","last_upstream_query":"2025-09-15T20:09:09.402089+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":10586150052,"entry_timestamp":"2023-09-15T10:36:49.311","not_before":"2023-09-15T09:36:48","not_after":"2023-12-14T09:36:47","serial_number":"045dedd31035da18a73d26fe8a4f963f6eef","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":10577792024,"entry_timestamp":"2023-09-15T10:36:49.018","not_before":"2023-09-15T09:36:48","not_after":"2023-12-14T09:36:47","serial_number":"045dedd31035da18a73d26fe8a4f963f6eef","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":9948906308,"entry_timestamp":"2023-07-14T08:26:39.958","not_before":"2023-07-14T07:26:39","not_after":"2023-10-12T07:26:38","serial_number":"035e2fe150728c3a351990f06dab0a9b29b7","result_count":3},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"nextcloud.kvmu12s1.kasserver.com","name_value":"nextcloud.kvmu12s1.kasserver.com\nwww.nextcloud.kvmu12s1.kasserver.com","id":9905731790,"entry_timestamp":"2023-07-14T08:26:39.811","not_before":"2023-07-14T07:26:39","not_after":"2023-10-12T07:26:38","serial_number":"035e2fe150728c3a351990f06dab0a9b29b7","result_count":3}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/kvmwerner2_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/kvmwerner2_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								cache/crtsh/monitor_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/monitor_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								cache/crtsh/schulung_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/schulung_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"schulung.c-rieger.de","first_cached":"2025-09-15T20:19:45.608836+00:00","last_upstream_query":"2025-09-15T20:19:45.608840+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"schulung.c-rieger.de","name_value":"schulung.c-rieger.de","id":6912708304,"entry_timestamp":"2022-06-10T12:10:32.957","not_before":"2022-06-10T11:10:32","not_after":"2022-09-08T11:10:31","serial_number":"0482d97aeafe226917e7535e7ef37aaf285e","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"schulung.c-rieger.de","name_value":"schulung.c-rieger.de","id":6906105642,"entry_timestamp":"2022-06-10T12:10:32.645","not_before":"2022-06-10T11:10:32","not_after":"2022-09-08T11:10:31","serial_number":"0482d97aeafe226917e7535e7ef37aaf285e","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"schulung.c-rieger.de","name_value":"schulung.c-rieger.de","id":6719406687,"entry_timestamp":"2022-05-13T05:44:59.492","not_before":"2022-05-13T04:44:58","not_after":"2022-08-11T04:44:57","serial_number":"03253d32b3513fb3b4c62afc826ff96c1c41","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"schulung.c-rieger.de","name_value":"schulung.c-rieger.de","id":6719400232,"entry_timestamp":"2022-05-13T05:44:58.911","not_before":"2022-05-13T04:44:58","not_after":"2022-08-11T04:44:57","serial_number":"03253d32b3513fb3b4c62afc826ff96c1c41","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"schulung.c-rieger.de","name_value":"schulung.c-rieger.de","id":6719404412,"entry_timestamp":"2022-05-13T05:44:55.458","not_before":"2022-05-13T04:44:54","not_after":"2022-08-11T04:44:53","serial_number":"0388331d964e2dc5e1829c896797bd5ba3dc","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"schulung.c-rieger.de","name_value":"schulung.c-rieger.de","id":6719407041,"entry_timestamp":"2022-05-13T05:44:54.864","not_before":"2022-05-13T04:44:54","not_after":"2022-08-11T04:44:53","serial_number":"0388331d964e2dc5e1829c896797bd5ba3dc","result_count":2}]}
 | 
				
			||||||
							
								
								
									
										2
									
								
								cache/crtsh/vm0800_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/vm0800_kasserver_com.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								cache/crtsh/webseite_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/webseite_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"webseite.c-rieger.de","first_cached":"2025-09-15T20:20:45.532278+00:00","last_upstream_query":"2025-09-15T20:20:45.532282+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"webseite.c-rieger.de","name_value":"webseite.c-rieger.de","id":8134719929,"entry_timestamp":"2022-12-03T17:00:55.86","not_before":"2022-12-03T16:00:55","not_after":"2023-03-03T16:00:54","serial_number":"03cb5e989233f5d6c54b28ec47d8c84fd5d0","result_count":2},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"webseite.c-rieger.de","name_value":"webseite.c-rieger.de","id":8117005264,"entry_timestamp":"2022-12-03T17:00:55.319","not_before":"2022-12-03T16:00:55","not_after":"2023-03-03T16:00:54","serial_number":"03cb5e989233f5d6c54b28ec47d8c84fd5d0","result_count":2}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/www_20_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/www_20_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"www.20.c-rieger.de","first_cached":"2025-09-15T20:19:59.303367+00:00","last_upstream_query":"2025-09-15T20:19:59.303370+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"20.c-rieger.de","name_value":"www.20.c-rieger.de","id":3536326667,"entry_timestamp":"2020-10-20T18:05:41.571","not_before":"2020-10-20T17:05:41","not_after":"2021-01-18T17:05:41","serial_number":"039b898ec613e6397ced0969a3287a7bfae8","result_count":1},{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"20.c-rieger.de","name_value":"www.20.c-rieger.de","id":3536326769,"entry_timestamp":"2020-10-20T18:05:41.358","not_before":"2020-10-20T17:05:41","not_after":"2021-01-18T17:05:41","serial_number":"039b898ec613e6397ced0969a3287a7bfae8","result_count":1}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/www_mail_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/www_mail_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"www.mail.c-rieger.de","first_cached":"2025-09-15T20:20:46.815856+00:00","last_upstream_query":"2025-09-15T20:20:46.815860+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"mail.c-rieger.de","name_value":"www.mail.c-rieger.de","id":16747998,"entry_timestamp":"2016-04-15T17:10:54.056","not_before":"2016-04-15T16:11:00","not_after":"2016-07-14T16:11:00","serial_number":"03e78c9a8c9a5cf985fbe5585eb8fed3f01e","result_count":1}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/www_rieke2_dd30002_kasserver_com.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/www_rieke2_dd30002_kasserver_com.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"www.rieke2.dd30002.kasserver.com","first_cached":"2025-09-15T20:13:35.043527+00:00","last_upstream_query":"2025-09-15T20:13:35.043531+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"rieke2.dd30002.kasserver.com","name_value":"www.rieke2.dd30002.kasserver.com","id":15032319915,"entry_timestamp":"2024-10-21T19:46:43.356","not_before":"2024-10-21T18:48:10","not_after":"2025-01-19T18:48:09","serial_number":"038e36e3469a4e85139f2fe30497c525281f","result_count":1},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"rieke2.dd30002.kasserver.com","name_value":"www.rieke2.dd30002.kasserver.com","id":15032308636,"entry_timestamp":"2024-10-21T19:46:40.653","not_before":"2024-10-21T18:48:10","not_after":"2025-01-19T18:48:09","serial_number":"038e36e3469a4e85139f2fe30497c525281f","result_count":1}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/www_test1_dd24432_kasserver_com.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/www_test1_dd24432_kasserver_com.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"www.test1.dd24432.kasserver.com","first_cached":"2025-09-15T20:13:46.958901+00:00","last_upstream_query":"2025-09-15T20:13:46.958905+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":16418,"issuer_name":"C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3","common_name":"test1.dd24432.kasserver.com","name_value":"www.test1.dd24432.kasserver.com","id":157863863,"entry_timestamp":"2017-06-20T11:17:00.314","not_before":"2017-06-20T10:17:00","not_after":"2017-09-18T10:17:00","serial_number":"03c833715204594e6946b183652f0be2055e","result_count":1}]}
 | 
				
			||||||
							
								
								
									
										1
									
								
								cache/crtsh/www_wbk_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/www_wbk_c-rieger_de.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"domain":"www.wbk.c-rieger.de","first_cached":"2025-09-15T20:20:03.202856+00:00","last_upstream_query":"2025-09-15T20:20:03.202859+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"wbk.c-rieger.de","name_value":"www.wbk.c-rieger.de","id":12659707014,"entry_timestamp":"2024-04-08T13:03:21.001","not_before":"2024-04-08T12:03:20","not_after":"2024-07-07T12:03:19","serial_number":"03aa06e03d65059ce9b0f53d4290c27f142d","result_count":1},{"issuer_ca_id":183267,"issuer_name":"C=US, O=Let's Encrypt, CN=R3","common_name":"wbk.c-rieger.de","name_value":"www.wbk.c-rieger.de","id":12656118736,"entry_timestamp":"2024-04-08T13:03:20.881","not_before":"2024-04-08T12:03:20","not_after":"2024-07-07T12:03:19","serial_number":"03aa06e03d65059ce9b0f53d4290c27f142d","result_count":1}]}
 | 
				
			||||||
@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					# dnsrecon-reduced/config.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
Configuration management for DNSRecon tool.
 | 
					Configuration management for DNSRecon tool.
 | 
				
			||||||
Handles API key storage, rate limiting, and default settings.
 | 
					Handles API key storage, rate limiting, and default settings.
 | 
				
			||||||
@ -30,7 +32,7 @@ class Config:
 | 
				
			|||||||
        
 | 
					        
 | 
				
			||||||
        # --- Rate Limiting (requests per minute) ---
 | 
					        # --- Rate Limiting (requests per minute) ---
 | 
				
			||||||
        self.rate_limits = {
 | 
					        self.rate_limits = {
 | 
				
			||||||
            'crtsh': 30,
 | 
					            'crtsh': 5,
 | 
				
			||||||
            'shodan': 60,
 | 
					            'shodan': 60,
 | 
				
			||||||
            'dns': 100
 | 
					            'dns': 100
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -50,7 +50,7 @@ class ForensicLogger:
 | 
				
			|||||||
            session_id: Unique identifier for this reconnaissance session
 | 
					            session_id: Unique identifier for this reconnaissance session
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        self.session_id = session_id or self._generate_session_id()
 | 
					        self.session_id = session_id or self._generate_session_id()
 | 
				
			||||||
        #self.lock = threading.Lock()
 | 
					        self.lock = threading.Lock()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        # Initialize audit trail storage
 | 
					        # Initialize audit trail storage
 | 
				
			||||||
        self.api_requests: List[APIRequest] = []
 | 
					        self.api_requests: List[APIRequest] = []
 | 
				
			||||||
@ -86,6 +86,8 @@ class ForensicLogger:
 | 
				
			|||||||
        # Remove the unpickleable 'logger' attribute
 | 
					        # Remove the unpickleable 'logger' attribute
 | 
				
			||||||
        if 'logger' in state:
 | 
					        if 'logger' in state:
 | 
				
			||||||
            del state['logger']
 | 
					            del state['logger']
 | 
				
			||||||
 | 
					        if 'lock' in state:
 | 
				
			||||||
 | 
					            del state['lock']
 | 
				
			||||||
        return state
 | 
					        return state
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __setstate__(self, state):
 | 
					    def __setstate__(self, state):
 | 
				
			||||||
@ -101,6 +103,7 @@ class ForensicLogger:
 | 
				
			|||||||
            console_handler = logging.StreamHandler()
 | 
					            console_handler = logging.StreamHandler()
 | 
				
			||||||
            console_handler.setFormatter(formatter)
 | 
					            console_handler.setFormatter(formatter)
 | 
				
			||||||
            self.logger.addHandler(console_handler)
 | 
					            self.logger.addHandler(console_handler)
 | 
				
			||||||
 | 
					        self.lock = threading.Lock()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _generate_session_id(self) -> str:
 | 
					    def _generate_session_id(self) -> str:
 | 
				
			||||||
        """Generate unique session identifier."""
 | 
					        """Generate unique session identifier."""
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										29
									
								
								core/rate_limiter.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								core/rate_limiter.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					# dnsrecon-reduced/core/rate_limiter.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import time
 | 
				
			||||||
 | 
					import redis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class GlobalRateLimiter:
 | 
				
			||||||
 | 
					    def __init__(self, redis_client):
 | 
				
			||||||
 | 
					        self.redis = redis_client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def is_rate_limited(self, key, limit, period):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        Check if a key is rate-limited.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        now = time.time()
 | 
				
			||||||
 | 
					        key = f"rate_limit:{key}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Remove old timestamps
 | 
				
			||||||
 | 
					        self.redis.zremrangebyscore(key, 0, now - period)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Check the count
 | 
				
			||||||
 | 
					        count = self.redis.zcard(key)
 | 
				
			||||||
 | 
					        if count >= limit:
 | 
				
			||||||
 | 
					            return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Add new timestamp
 | 
				
			||||||
 | 
					        self.redis.zadd(key, {now: now})
 | 
				
			||||||
 | 
					        self.redis.expire(key, period)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
							
								
								
									
										212
									
								
								core/scanner.py
									
									
									
									
									
								
							
							
						
						
									
										212
									
								
								core/scanner.py
									
									
									
									
									
								
							@ -5,16 +5,18 @@ import traceback
 | 
				
			|||||||
import time
 | 
					import time
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import importlib
 | 
					import importlib
 | 
				
			||||||
 | 
					import redis
 | 
				
			||||||
from typing import List, Set, Dict, Any, Tuple, Optional
 | 
					from typing import List, Set, Dict, Any, Tuple, Optional
 | 
				
			||||||
from concurrent.futures import ThreadPoolExecutor, as_completed, CancelledError, Future
 | 
					from concurrent.futures import ThreadPoolExecutor, as_completed, CancelledError, Future
 | 
				
			||||||
from collections import defaultdict, deque
 | 
					from collections import defaultdict
 | 
				
			||||||
 | 
					from queue import PriorityQueue
 | 
				
			||||||
from datetime import datetime, timezone
 | 
					from datetime import datetime, timezone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from core.graph_manager import GraphManager, NodeType
 | 
					from core.graph_manager import GraphManager, NodeType
 | 
				
			||||||
from core.logger import get_forensic_logger, new_session
 | 
					from core.logger import get_forensic_logger, new_session
 | 
				
			||||||
from utils.helpers import _is_valid_ip, _is_valid_domain
 | 
					from utils.helpers import _is_valid_ip, _is_valid_domain
 | 
				
			||||||
from providers.base_provider import BaseProvider
 | 
					from providers.base_provider import BaseProvider
 | 
				
			||||||
 | 
					from core.rate_limiter import GlobalRateLimiter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ScanStatus:
 | 
					class ScanStatus:
 | 
				
			||||||
    """Enumeration of scan statuses."""
 | 
					    """Enumeration of scan statuses."""
 | 
				
			||||||
@ -50,7 +52,7 @@ class Scanner:
 | 
				
			|||||||
            self.stop_event = threading.Event()
 | 
					            self.stop_event = threading.Event()
 | 
				
			||||||
            self.scan_thread = None
 | 
					            self.scan_thread = None
 | 
				
			||||||
            self.session_id: Optional[str] = None  # Will be set by session manager
 | 
					            self.session_id: Optional[str] = None  # Will be set by session manager
 | 
				
			||||||
            self.task_queue = deque([])
 | 
					            self.task_queue = PriorityQueue()
 | 
				
			||||||
            self.target_retries = defaultdict(int)
 | 
					            self.target_retries = defaultdict(int)
 | 
				
			||||||
            self.scan_failed_due_to_retries = False
 | 
					            self.scan_failed_due_to_retries = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -76,6 +78,9 @@ class Scanner:
 | 
				
			|||||||
            # Initialize logger
 | 
					            # Initialize logger
 | 
				
			||||||
            print("Initializing forensic logger...")
 | 
					            print("Initializing forensic logger...")
 | 
				
			||||||
            self.logger = get_forensic_logger()
 | 
					            self.logger = get_forensic_logger()
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            # Initialize global rate limiter
 | 
				
			||||||
 | 
					            self.rate_limiter = GlobalRateLimiter(redis.StrictRedis(db=0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            print("Scanner initialization complete")
 | 
					            print("Scanner initialization complete")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -129,7 +134,10 @@ class Scanner:
 | 
				
			|||||||
            'stop_event',
 | 
					            'stop_event',
 | 
				
			||||||
            'scan_thread', 
 | 
					            'scan_thread', 
 | 
				
			||||||
            'executor',
 | 
					            'executor',
 | 
				
			||||||
            'processing_lock'  # **NEW**: Exclude the processing lock
 | 
					            'processing_lock',  # **NEW**: Exclude the processing lock
 | 
				
			||||||
 | 
					            'task_queue', # PriorityQueue is not picklable
 | 
				
			||||||
 | 
					            'rate_limiter',
 | 
				
			||||||
 | 
					            'logger'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        for attr in unpicklable_attrs:
 | 
					        for attr in unpicklable_attrs:
 | 
				
			||||||
@ -154,6 +162,9 @@ class Scanner:
 | 
				
			|||||||
        self.scan_thread = None
 | 
					        self.scan_thread = None
 | 
				
			||||||
        self.executor = None
 | 
					        self.executor = None
 | 
				
			||||||
        self.processing_lock = threading.Lock()  # **NEW**: Recreate processing lock
 | 
					        self.processing_lock = threading.Lock()  # **NEW**: Recreate processing lock
 | 
				
			||||||
 | 
					        self.task_queue = PriorityQueue()
 | 
				
			||||||
 | 
					        self.rate_limiter = GlobalRateLimiter(redis.StrictRedis(db=0))
 | 
				
			||||||
 | 
					        self.logger = get_forensic_logger()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        # **NEW**: Reset processing tracking
 | 
					        # **NEW**: Reset processing tracking
 | 
				
			||||||
        if not hasattr(self, 'currently_processing'):
 | 
					        if not hasattr(self, 'currently_processing'):
 | 
				
			||||||
@ -221,7 +232,7 @@ class Scanner:
 | 
				
			|||||||
            # Clear all processing state
 | 
					            # Clear all processing state
 | 
				
			||||||
            with self.processing_lock:
 | 
					            with self.processing_lock:
 | 
				
			||||||
                self.currently_processing.clear()
 | 
					                self.currently_processing.clear()
 | 
				
			||||||
            self.task_queue.clear()
 | 
					            self.task_queue = PriorityQueue()
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            # Shutdown executor aggressively
 | 
					            # Shutdown executor aggressively
 | 
				
			||||||
            if self.executor:
 | 
					            if self.executor:
 | 
				
			||||||
@ -251,7 +262,7 @@ class Scanner:
 | 
				
			|||||||
        with self.processing_lock:
 | 
					        with self.processing_lock:
 | 
				
			||||||
            self.currently_processing.clear()
 | 
					            self.currently_processing.clear()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        self.task_queue.clear()
 | 
					        self.task_queue = PriorityQueue()
 | 
				
			||||||
        self.target_retries.clear()
 | 
					        self.target_retries.clear()
 | 
				
			||||||
        self.scan_failed_due_to_retries = False
 | 
					        self.scan_failed_due_to_retries = False
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
@ -311,42 +322,60 @@ class Scanner:
 | 
				
			|||||||
            self._update_session_state() 
 | 
					            self._update_session_state() 
 | 
				
			||||||
            return False
 | 
					            return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _get_priority(self, provider_name):
 | 
				
			||||||
 | 
					        rate_limit = self.config.get_rate_limit(provider_name)
 | 
				
			||||||
 | 
					        if rate_limit > 90:
 | 
				
			||||||
 | 
					            return 1 # Highest priority
 | 
				
			||||||
 | 
					        elif rate_limit > 50:
 | 
				
			||||||
 | 
					            return 2
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            return 3 # Lowest priority
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _execute_scan(self, target: str, max_depth: int) -> None:
 | 
					    def _execute_scan(self, target: str, max_depth: int) -> None:
 | 
				
			||||||
        """Execute the reconnaissance scan with proper termination handling."""
 | 
					        """Execute the reconnaissance scan with proper termination handling."""
 | 
				
			||||||
        print(f"_execute_scan started for {target} with depth {max_depth}")
 | 
					        print(f"_execute_scan started for {target} with depth {max_depth}")
 | 
				
			||||||
        self.executor = ThreadPoolExecutor(max_workers=self.max_workers)
 | 
					        self.executor = ThreadPoolExecutor(max_workers=self.max_workers)
 | 
				
			||||||
        processed_targets = set()
 | 
					        processed_tasks = set()
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        self.task_queue.append((target, 0, False))
 | 
					        # Initial task population for the main target
 | 
				
			||||||
        
 | 
					        is_ip = _is_valid_ip(target)
 | 
				
			||||||
 | 
					        initial_providers = self._get_eligible_providers(target, is_ip, False)
 | 
				
			||||||
 | 
					        for provider in initial_providers:
 | 
				
			||||||
 | 
					            provider_name = provider.get_name()
 | 
				
			||||||
 | 
					            self.task_queue.put((self._get_priority(provider_name), (provider_name, target, 0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.status = ScanStatus.RUNNING
 | 
					            self.status = ScanStatus.RUNNING
 | 
				
			||||||
            self._update_session_state()
 | 
					            self._update_session_state()
 | 
				
			||||||
            
 | 
					
 | 
				
			||||||
            enabled_providers = [provider.get_name() for provider in self.providers]
 | 
					            enabled_providers = [provider.get_name() for provider in self.providers]
 | 
				
			||||||
            self.logger.log_scan_start(target, max_depth, enabled_providers)
 | 
					            self.logger.log_scan_start(target, max_depth, enabled_providers)
 | 
				
			||||||
            
 | 
					
 | 
				
			||||||
            # Determine initial node type
 | 
					            # Determine initial node type
 | 
				
			||||||
            node_type = NodeType.IP if _is_valid_ip(target) else NodeType.DOMAIN
 | 
					            node_type = NodeType.IP if is_ip else NodeType.DOMAIN
 | 
				
			||||||
            self.graph.add_node(target, node_type)
 | 
					            self.graph.add_node(target, node_type)
 | 
				
			||||||
            
 | 
					
 | 
				
			||||||
            self._initialize_provider_states(target)
 | 
					            self._initialize_provider_states(target)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Better termination checking in main loop
 | 
					            # Better termination checking in main loop
 | 
				
			||||||
            while self.task_queue and not self._is_stop_requested():
 | 
					            while not self.task_queue.empty() and not self._is_stop_requested():
 | 
				
			||||||
                try:
 | 
					                try:
 | 
				
			||||||
                    target_item, depth, is_large_entity_member = self.task_queue.popleft()
 | 
					                    priority, (provider_name, target_item, depth) = self.task_queue.get()
 | 
				
			||||||
                except IndexError:
 | 
					                except IndexError:
 | 
				
			||||||
                    # Queue became empty during processing
 | 
					                    # Queue became empty during processing
 | 
				
			||||||
                    break
 | 
					                    break
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if target_item in processed_targets:
 | 
					                task_tuple = (provider_name, target_item)
 | 
				
			||||||
 | 
					                if task_tuple in processed_tasks:
 | 
				
			||||||
                    continue
 | 
					                    continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if depth > max_depth:
 | 
					                if depth > max_depth:
 | 
				
			||||||
                    continue
 | 
					                    continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                # Track this target as currently processing
 | 
					                if self.rate_limiter.is_rate_limited(provider_name, self.config.get_rate_limit(provider_name), 60):
 | 
				
			||||||
 | 
					                    self.task_queue.put((priority + 1, (provider_name, target_item, depth))) # Postpone
 | 
				
			||||||
 | 
					                    continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                with self.processing_lock:
 | 
					                with self.processing_lock:
 | 
				
			||||||
                    if self._is_stop_requested():
 | 
					                    if self._is_stop_requested():
 | 
				
			||||||
                        print(f"Stop requested before processing {target_item}")
 | 
					                        print(f"Stop requested before processing {target_item}")
 | 
				
			||||||
@ -357,53 +386,52 @@ class Scanner:
 | 
				
			|||||||
                    self.current_depth = depth
 | 
					                    self.current_depth = depth
 | 
				
			||||||
                    self.current_indicator = target_item
 | 
					                    self.current_indicator = target_item
 | 
				
			||||||
                    self._update_session_state()
 | 
					                    self._update_session_state()
 | 
				
			||||||
                    
 | 
					
 | 
				
			||||||
                    # More frequent stop checking during processing
 | 
					 | 
				
			||||||
                    if self._is_stop_requested():
 | 
					                    if self._is_stop_requested():
 | 
				
			||||||
                        print(f"Stop requested during processing setup for {target_item}")
 | 
					                        print(f"Stop requested during processing setup for {target_item}")
 | 
				
			||||||
                        break
 | 
					                        break
 | 
				
			||||||
                    
 | 
					                    
 | 
				
			||||||
                    new_targets, large_entity_members, success = self._query_providers_for_target(target_item, depth, is_large_entity_member)
 | 
					                    provider = next((p for p in self.providers if p.get_name() == provider_name), None)
 | 
				
			||||||
                    
 | 
					
 | 
				
			||||||
                    # Check stop signal after provider queries
 | 
					                    if provider:
 | 
				
			||||||
                    if self._is_stop_requested():
 | 
					                        new_targets, large_entity_members, success = self._query_single_provider_for_target(provider, target_item, depth)
 | 
				
			||||||
                        print(f"Stop requested after querying providers for {target_item}")
 | 
					
 | 
				
			||||||
                        break
 | 
					                        if self._is_stop_requested():
 | 
				
			||||||
                    
 | 
					                            print(f"Stop requested after querying providers for {target_item}")
 | 
				
			||||||
                    if not success:
 | 
					                            break
 | 
				
			||||||
                        self.target_retries[target_item] += 1
 | 
					
 | 
				
			||||||
                        if self.target_retries[target_item] <= self.config.max_retries_per_target:
 | 
					                        if not success:
 | 
				
			||||||
                            print(f"Re-queueing target {target_item} (attempt {self.target_retries[target_item]})")
 | 
					                            self.target_retries[task_tuple] += 1
 | 
				
			||||||
                            self.task_queue.append((target_item, depth, is_large_entity_member))
 | 
					                            if self.target_retries[task_tuple] <= self.config.max_retries_per_target:
 | 
				
			||||||
                            self.tasks_re_enqueued += 1
 | 
					                                print(f"Re-queueing task {task_tuple} (attempt {self.target_retries[task_tuple]})")
 | 
				
			||||||
 | 
					                                self.task_queue.put((priority, (provider_name, target_item, depth)))
 | 
				
			||||||
 | 
					                                self.tasks_re_enqueued += 1
 | 
				
			||||||
 | 
					                            else:
 | 
				
			||||||
 | 
					                                print(f"ERROR: Max retries exceeded for task {task_tuple}")
 | 
				
			||||||
 | 
					                                self.scan_failed_due_to_retries = True
 | 
				
			||||||
 | 
					                                self._log_target_processing_error(str(task_tuple), "Max retries exceeded")
 | 
				
			||||||
                        else:
 | 
					                        else:
 | 
				
			||||||
                            print(f"ERROR: Max retries exceeded for target {target_item}")
 | 
					                            processed_tasks.add(task_tuple)
 | 
				
			||||||
                            self.scan_failed_due_to_retries = True
 | 
					                            self.indicators_completed += 1
 | 
				
			||||||
                            self._log_target_processing_error(target_item, "Max retries exceeded")
 | 
					
 | 
				
			||||||
                    else:
 | 
					                        if not self._is_stop_requested():
 | 
				
			||||||
                        processed_targets.add(target_item)
 | 
					                            all_new_targets = new_targets.union(large_entity_members)
 | 
				
			||||||
                        self.indicators_completed += 1
 | 
					                            for new_target in all_new_targets:
 | 
				
			||||||
                    
 | 
					                                is_ip_new = _is_valid_ip(new_target)
 | 
				
			||||||
                    # Only add new targets if not stopped
 | 
					                                eligible_providers_new = self._get_eligible_providers(new_target, is_ip_new, False)
 | 
				
			||||||
                    if not self._is_stop_requested():
 | 
					                                for p_new in eligible_providers_new:
 | 
				
			||||||
                        for new_target in new_targets:
 | 
					                                    p_name_new = p_new.get_name()
 | 
				
			||||||
                            if new_target not in processed_targets:
 | 
					                                    if (p_name_new, new_target) not in processed_tasks:
 | 
				
			||||||
                                self.task_queue.append((new_target, depth + 1, False))
 | 
					                                        new_depth = depth + 1 if new_target in new_targets else depth
 | 
				
			||||||
                        
 | 
					                                        self.task_queue.put((self._get_priority(p_name_new), (p_name_new, new_target, new_depth)))
 | 
				
			||||||
                        for member in large_entity_members:
 | 
					 | 
				
			||||||
                            if member not in processed_targets:
 | 
					 | 
				
			||||||
                                self.task_queue.append((member, depth, True))
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                finally:
 | 
					                finally:
 | 
				
			||||||
                    # Always remove from processing set
 | 
					 | 
				
			||||||
                    with self.processing_lock:
 | 
					                    with self.processing_lock:
 | 
				
			||||||
                        self.currently_processing.discard(target_item)
 | 
					                        self.currently_processing.discard(target_item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Log termination reason
 | 
					 | 
				
			||||||
            if self._is_stop_requested():
 | 
					            if self._is_stop_requested():
 | 
				
			||||||
                print("Scan terminated due to stop request")
 | 
					                print("Scan terminated due to stop request")
 | 
				
			||||||
                self.logger.logger.info("Scan terminated by user request")
 | 
					                self.logger.logger.info("Scan terminated by user request")
 | 
				
			||||||
            elif not self.task_queue:
 | 
					            elif self.task_queue.empty():
 | 
				
			||||||
                print("Scan completed - no more targets to process")
 | 
					                print("Scan completed - no more targets to process")
 | 
				
			||||||
                self.logger.logger.info("Scan completed - all targets processed")
 | 
					                self.logger.logger.info("Scan completed - all targets processed")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -413,17 +441,16 @@ class Scanner:
 | 
				
			|||||||
            self.status = ScanStatus.FAILED
 | 
					            self.status = ScanStatus.FAILED
 | 
				
			||||||
            self.logger.logger.error(f"Scan failed: {e}")
 | 
					            self.logger.logger.error(f"Scan failed: {e}")
 | 
				
			||||||
        finally:
 | 
					        finally:
 | 
				
			||||||
            # Clear processing state on exit
 | 
					 | 
				
			||||||
            with self.processing_lock:
 | 
					            with self.processing_lock:
 | 
				
			||||||
                self.currently_processing.clear()
 | 
					                self.currently_processing.clear()
 | 
				
			||||||
            
 | 
					
 | 
				
			||||||
            if self._is_stop_requested():
 | 
					            if self._is_stop_requested():
 | 
				
			||||||
                self.status = ScanStatus.STOPPED
 | 
					                self.status = ScanStatus.STOPPED
 | 
				
			||||||
            elif self.scan_failed_due_to_retries:
 | 
					            elif self.scan_failed_due_to_retries:
 | 
				
			||||||
                self.status = ScanStatus.FAILED
 | 
					                self.status = ScanStatus.FAILED
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                self.status = ScanStatus.COMPLETED
 | 
					                self.status = ScanStatus.COMPLETED
 | 
				
			||||||
                
 | 
					
 | 
				
			||||||
            self._update_session_state()
 | 
					            self._update_session_state()
 | 
				
			||||||
            self.logger.log_scan_complete()
 | 
					            self.logger.log_scan_complete()
 | 
				
			||||||
            if self.executor:
 | 
					            if self.executor:
 | 
				
			||||||
@ -433,60 +460,43 @@ class Scanner:
 | 
				
			|||||||
            print("Final scan statistics:")
 | 
					            print("Final scan statistics:")
 | 
				
			||||||
            print(f"  - Total nodes: {stats['basic_metrics']['total_nodes']}")
 | 
					            print(f"  - Total nodes: {stats['basic_metrics']['total_nodes']}")
 | 
				
			||||||
            print(f"  - Total edges: {stats['basic_metrics']['total_edges']}")
 | 
					            print(f"  - Total edges: {stats['basic_metrics']['total_edges']}")
 | 
				
			||||||
            print(f"  - Targets processed: {len(processed_targets)}")
 | 
					            print(f"  - Tasks processed: {len(processed_tasks)}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _query_providers_for_target(self, target: str, depth: int, dns_only: bool = False) -> Tuple[Set[str], Set[str], bool]:
 | 
					    def _query_single_provider_for_target(self, provider: BaseProvider, target: str, depth: int) -> Tuple[Set[str], Set[str], bool]:
 | 
				
			||||||
        """Query providers for a single target with enhanced stop checking."""
 | 
					 | 
				
			||||||
        # **NEW**: Early termination check
 | 
					 | 
				
			||||||
        if self._is_stop_requested():
 | 
					        if self._is_stop_requested():
 | 
				
			||||||
            print(f"Stop requested before querying providers for {target}")
 | 
					            print(f"Stop requested before querying {provider.get_name()} for {target}")
 | 
				
			||||||
            return set(), set(), False
 | 
					            return set(), set(), False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        is_ip = _is_valid_ip(target)
 | 
					        is_ip = _is_valid_ip(target)
 | 
				
			||||||
        target_type = NodeType.IP if is_ip else NodeType.DOMAIN
 | 
					        target_type = NodeType.IP if is_ip else NodeType.DOMAIN
 | 
				
			||||||
        print(f"Querying providers for {target_type.value}: {target} at depth {depth}")
 | 
					        print(f"Querying {provider.get_name()} for {target_type.value}: {target} at depth {depth}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.graph.add_node(target, target_type)
 | 
					        self.graph.add_node(target, target_type)
 | 
				
			||||||
        self._initialize_provider_states(target)
 | 
					        self._initialize_provider_states(target)
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        new_targets = set()
 | 
					        new_targets = set()
 | 
				
			||||||
        large_entity_members = set()
 | 
					        large_entity_members = set()
 | 
				
			||||||
        node_attributes = defaultdict(lambda: defaultdict(list))
 | 
					        node_attributes = defaultdict(lambda: defaultdict(list))
 | 
				
			||||||
        all_providers_successful = True
 | 
					        provider_successful = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        eligible_providers = self._get_eligible_providers(target, is_ip, dns_only)
 | 
					        try:
 | 
				
			||||||
        
 | 
					            provider_results = self._query_single_provider_forensic(provider, target, is_ip, depth)
 | 
				
			||||||
        if not eligible_providers:
 | 
					            if provider_results is None:
 | 
				
			||||||
            self._log_no_eligible_providers(target, is_ip)
 | 
					                provider_successful = False
 | 
				
			||||||
            return new_targets, large_entity_members, True
 | 
					            elif not self._is_stop_requested():
 | 
				
			||||||
 | 
					                discovered, is_large_entity = self._process_provider_results_forensic(
 | 
				
			||||||
        # **IMPROVED**: Check stop signal before each provider
 | 
					                    target, provider, provider_results, node_attributes, depth
 | 
				
			||||||
        for i, provider in enumerate(eligible_providers):
 | 
					                )
 | 
				
			||||||
            if self._is_stop_requested():
 | 
					                if is_large_entity:
 | 
				
			||||||
                print(f"Stop requested while querying provider {i+1}/{len(eligible_providers)} for {target}")
 | 
					                    large_entity_members.update(discovered)
 | 
				
			||||||
                all_providers_successful = False
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            try:
 | 
					 | 
				
			||||||
                provider_results = self._query_single_provider_forensic(provider, target, is_ip, depth)
 | 
					 | 
				
			||||||
                if provider_results is None:
 | 
					 | 
				
			||||||
                    all_providers_successful = False
 | 
					 | 
				
			||||||
                elif not self._is_stop_requested():
 | 
					 | 
				
			||||||
                    discovered, is_large_entity = self._process_provider_results_forensic(
 | 
					 | 
				
			||||||
                        target, provider, provider_results, node_attributes, depth
 | 
					 | 
				
			||||||
                    )
 | 
					 | 
				
			||||||
                    if is_large_entity:
 | 
					 | 
				
			||||||
                        large_entity_members.update(discovered)
 | 
					 | 
				
			||||||
                    else:
 | 
					 | 
				
			||||||
                        new_targets.update(discovered)
 | 
					 | 
				
			||||||
                else:
 | 
					                else:
 | 
				
			||||||
                    print(f"Stop requested after processing results from {provider.get_name()}")
 | 
					                    new_targets.update(discovered)
 | 
				
			||||||
                    break
 | 
					            else:
 | 
				
			||||||
            except Exception as e:
 | 
					                print(f"Stop requested after processing results from {provider.get_name()}")
 | 
				
			||||||
                all_providers_successful = False
 | 
					        except Exception as e:
 | 
				
			||||||
                self._log_provider_error(target, provider.get_name(), str(e))
 | 
					            provider_successful = False
 | 
				
			||||||
 | 
					            self._log_provider_error(target, provider.get_name(), str(e))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # **NEW**: Only update node attributes if not stopped
 | 
					 | 
				
			||||||
        if not self._is_stop_requested():
 | 
					        if not self._is_stop_requested():
 | 
				
			||||||
            for node_id, attributes in node_attributes.items():
 | 
					            for node_id, attributes in node_attributes.items():
 | 
				
			||||||
                if self.graph.graph.has_node(node_id):
 | 
					                if self.graph.graph.has_node(node_id):
 | 
				
			||||||
@ -494,7 +504,7 @@ class Scanner:
 | 
				
			|||||||
                    node_type_to_add = NodeType.IP if node_is_ip else NodeType.DOMAIN
 | 
					                    node_type_to_add = NodeType.IP if node_is_ip else NodeType.DOMAIN
 | 
				
			||||||
                    self.graph.add_node(node_id, node_type_to_add, attributes=attributes)
 | 
					                    self.graph.add_node(node_id, node_type_to_add, attributes=attributes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return new_targets, large_entity_members, all_providers_successful
 | 
					        return new_targets, large_entity_members, provider_successful
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def stop_scan(self) -> bool:
 | 
					    def stop_scan(self) -> bool:
 | 
				
			||||||
        """Request immediate scan termination with proper cleanup."""
 | 
					        """Request immediate scan termination with proper cleanup."""
 | 
				
			||||||
@ -513,8 +523,10 @@ class Scanner:
 | 
				
			|||||||
                print(f"Cleared {len(currently_processing_copy)} currently processing targets: {currently_processing_copy}")
 | 
					                print(f"Cleared {len(currently_processing_copy)} currently processing targets: {currently_processing_copy}")
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            # **IMPROVED**: Clear task queue and log what was discarded
 | 
					            # **IMPROVED**: Clear task queue and log what was discarded
 | 
				
			||||||
            discarded_tasks = list(self.task_queue)
 | 
					            discarded_tasks = []
 | 
				
			||||||
            self.task_queue.clear()
 | 
					            while not self.task_queue.empty():
 | 
				
			||||||
 | 
					                discarded_tasks.append(self.task_queue.get())
 | 
				
			||||||
 | 
					            self.task_queue = PriorityQueue()
 | 
				
			||||||
            print(f"Discarded {len(discarded_tasks)} pending tasks")
 | 
					            print(f"Discarded {len(discarded_tasks)} pending tasks")
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            # **IMPROVED**: Aggressively shut down executor
 | 
					            # **IMPROVED**: Aggressively shut down executor
 | 
				
			||||||
@ -572,7 +584,7 @@ class Scanner:
 | 
				
			|||||||
                'progress_percentage': self._calculate_progress(),
 | 
					                'progress_percentage': self._calculate_progress(),
 | 
				
			||||||
                'enabled_providers': [provider.get_name() for provider in self.providers],
 | 
					                'enabled_providers': [provider.get_name() for provider in self.providers],
 | 
				
			||||||
                'graph_statistics': self.graph.get_statistics(),
 | 
					                'graph_statistics': self.graph.get_statistics(),
 | 
				
			||||||
                'task_queue_size': len(self.task_queue),
 | 
					                'task_queue_size': self.task_queue.qsize(),
 | 
				
			||||||
                'currently_processing_count': currently_processing_count,  # **NEW**
 | 
					                'currently_processing_count': currently_processing_count,  # **NEW**
 | 
				
			||||||
                'currently_processing': currently_processing_list[:5]  # **NEW**: Show first 5 for debugging
 | 
					                'currently_processing': currently_processing_list[:5]  # **NEW**: Show first 5 for debugging
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -859,7 +871,7 @@ class Scanner:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def _calculate_progress(self) -> float:
 | 
					    def _calculate_progress(self) -> float:
 | 
				
			||||||
        """Calculate scan progress percentage based on task completion."""
 | 
					        """Calculate scan progress percentage based on task completion."""
 | 
				
			||||||
        total_tasks = self.indicators_completed + len(self.task_queue)
 | 
					        total_tasks = self.indicators_completed + self.task_queue.qsize()
 | 
				
			||||||
        if total_tasks == 0:
 | 
					        if total_tasks == 0:
 | 
				
			||||||
            return 0.0
 | 
					            return 0.0
 | 
				
			||||||
        return min(100.0, (self.indicators_completed / total_tasks) * 100)
 | 
					        return min(100.0, (self.indicators_completed / total_tasks) * 100)
 | 
				
			||||||
 | 
				
			|||||||
@ -3,14 +3,15 @@ Data provider modules for DNSRecon.
 | 
				
			|||||||
Contains implementations for various reconnaissance data sources.
 | 
					Contains implementations for various reconnaissance data sources.
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .base_provider import BaseProvider, RateLimiter
 | 
					from .base_provider import BaseProvider
 | 
				
			||||||
from .crtsh_provider import CrtShProvider
 | 
					from .crtsh_provider import CrtShProvider
 | 
				
			||||||
from .dns_provider import DNSProvider
 | 
					from .dns_provider import DNSProvider
 | 
				
			||||||
from .shodan_provider import ShodanProvider
 | 
					from .shodan_provider import ShodanProvider
 | 
				
			||||||
 | 
					from core.rate_limiter import GlobalRateLimiter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = [
 | 
					__all__ = [
 | 
				
			||||||
    'BaseProvider',
 | 
					    'BaseProvider',
 | 
				
			||||||
    'RateLimiter', 
 | 
					    'GlobalRateLimiter', 
 | 
				
			||||||
    'CrtShProvider',
 | 
					    'CrtShProvider',
 | 
				
			||||||
    'DNSProvider',
 | 
					    'DNSProvider',
 | 
				
			||||||
    'ShodanProvider'
 | 
					    'ShodanProvider'
 | 
				
			||||||
 | 
				
			|||||||
@ -3,44 +3,12 @@
 | 
				
			|||||||
import time
 | 
					import time
 | 
				
			||||||
import requests
 | 
					import requests
 | 
				
			||||||
import threading
 | 
					import threading
 | 
				
			||||||
 | 
					import redis
 | 
				
			||||||
from abc import ABC, abstractmethod
 | 
					from abc import ABC, abstractmethod
 | 
				
			||||||
from typing import List, Dict, Any, Optional, Tuple
 | 
					from typing import List, Dict, Any, Optional, Tuple
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from core.logger import get_forensic_logger
 | 
					from core.logger import get_forensic_logger
 | 
				
			||||||
 | 
					from core.rate_limiter import GlobalRateLimiter
 | 
				
			||||||
 | 
					 | 
				
			||||||
class RateLimiter:
 | 
					 | 
				
			||||||
    """Simple rate limiter for API calls."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self, requests_per_minute: int):
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        Initialize rate limiter.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Args:
 | 
					 | 
				
			||||||
            requests_per_minute: Maximum requests allowed per minute
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        self.requests_per_minute = requests_per_minute
 | 
					 | 
				
			||||||
        self.min_interval = 60.0 / requests_per_minute
 | 
					 | 
				
			||||||
        self.last_request_time = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __getstate__(self):
 | 
					 | 
				
			||||||
        """RateLimiter is fully picklable, return full state."""
 | 
					 | 
				
			||||||
        return self.__dict__.copy()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __setstate__(self, state):
 | 
					 | 
				
			||||||
        """Restore RateLimiter state."""
 | 
					 | 
				
			||||||
        self.__dict__.update(state)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def wait_if_needed(self) -> None:
 | 
					 | 
				
			||||||
        """Wait if necessary to respect rate limits."""
 | 
					 | 
				
			||||||
        current_time = time.time()
 | 
					 | 
				
			||||||
        time_since_last = current_time - self.last_request_time
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if time_since_last < self.min_interval:
 | 
					 | 
				
			||||||
            sleep_time = self.min_interval - time_since_last
 | 
					 | 
				
			||||||
            time.sleep(sleep_time)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.last_request_time = time.time()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BaseProvider(ABC):
 | 
					class BaseProvider(ABC):
 | 
				
			||||||
@ -72,7 +40,6 @@ class BaseProvider(ABC):
 | 
				
			|||||||
            actual_timeout = timeout
 | 
					            actual_timeout = timeout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.name = name
 | 
					        self.name = name
 | 
				
			||||||
        self.rate_limiter = RateLimiter(actual_rate_limit)
 | 
					 | 
				
			||||||
        self.timeout = actual_timeout
 | 
					        self.timeout = actual_timeout
 | 
				
			||||||
        self._local = threading.local()
 | 
					        self._local = threading.local()
 | 
				
			||||||
        self.logger = get_forensic_logger()
 | 
					        self.logger = get_forensic_logger()
 | 
				
			||||||
@ -172,8 +139,6 @@ class BaseProvider(ABC):
 | 
				
			|||||||
            print(f"Request cancelled before start: {url}")
 | 
					            print(f"Request cancelled before start: {url}")
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.rate_limiter.wait_if_needed()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        start_time = time.time()
 | 
					        start_time = time.time()
 | 
				
			||||||
        response = None
 | 
					        response = None
 | 
				
			||||||
        error = None
 | 
					        error = None
 | 
				
			||||||
@ -297,5 +262,5 @@ class BaseProvider(ABC):
 | 
				
			|||||||
            'failed_requests': self.failed_requests,
 | 
					            'failed_requests': self.failed_requests,
 | 
				
			||||||
            'success_rate': (self.successful_requests / self.total_requests * 100) if self.total_requests > 0 else 0,
 | 
					            'success_rate': (self.successful_requests / self.total_requests * 100) if self.total_requests > 0 else 0,
 | 
				
			||||||
            'relationships_found': self.total_relationships_found,
 | 
					            'relationships_found': self.total_relationships_found,
 | 
				
			||||||
            'rate_limit': self.rate_limiter.requests_per_minute
 | 
					            'rate_limit': self.config.get_rate_limit(self.name)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user