首页 > 其他分享 >CloudFront优选IP

CloudFront优选IP

时间:2025-01-04 13:44:02浏览次数:1  
标签:__ 优选 IP self CloudFront queue host print import

Debian环境
apt-get install zmap python3 -y
apt-get install python3-pip
pip3 install requests
pip3 install numpy
脚本

点击查看代码
# coding=utf-8
import threading
import requests
import queue
import sys
import re
import os
import numpy as np

#
def bThread(iplist):
	threadl = []
	global q
	q = queue.Queue()
	for host in iplist:
		q.put(host)

	for x in range(0, int(SETTHREAD)):
		threadl.append(tThread(q))

	for t in threadl:
		t.start()
	for t in threadl:
		t.join()

#create thread
class tThread(threading.Thread):
	def __init__(self, queue):
		threading.Thread.__init__(self)
		self.queue = q

	def run(self):
		while not self.queue.empty():
			host = self.queue.get()
			try:
				checkServer(host)
			except:
				continue


def checkalive():
	print('\n[Step1] Scanning alive servers:\n')
	zmap = os.popen('zmap -w ' + SETIPLIST + ' -p 443 -B 30M')
	global IPLIST
	IPLIST = zmap.read().splitlines()

def checkServer(host):
	header ={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}
	aimurl = "http://"+host+":443"
	response = requests.get(url=aimurl,headers=header,timeout=10)
	serverText = response.headers['server']
	if (serverText == "CloudFront"):
		print("NewNode:" + host +" has been catched!\n")
		if MUTEX.acquire(3):
			with open("result.txt","a+") as file:
				file.write(host+"\n")
				file.close()
			MUTEX.release()

if __name__ == '__main__':
	os.system("clear")
	print('\n############# Cloud Front Scan ################')
	print('#   Author Madlifer|blog:https://vicho.me     #')
	print('###############################################\n')
	global SETIPLIST
	global SETTHREAD
	global MUTEX
	MUTEX = threading.Lock()
	SETIPLIST = sys.argv[1]
	SETTHREAD = sys.argv[2]
	checkalive()
	print('\n[Step2] Start Scanning edge nodes:\n')
	bThread(IPLIST)
	print('\n[WOW] Winner Winner Chicken Dinner!\n')
在脚本的同级目录下新建iplist.txt,将CF的IP段放进去。运行:

python3 scan.py iplist.txt 200

标签:__,优选,IP,self,CloudFront,queue,host,print,import
From: https://www.cnblogs.com/hmian/p/18651827

相关文章

  • 【优选算法】Binary-Blade:二分查找的算法刃(下)
    文章目录1.山脉数组的峰顶索引2.寻找峰值3.寻找旋转排序数组中的最小值4.点名希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力!本篇接上一篇二分查找,主要通过部分题目熟悉二分查找的进阶使用,重点强调二段性,找到两个区间不同的地方在哪,多画图划分界限......
  • JavaScript介绍
    JavaScript是一种高级的、解释型的编程语言,在网页开发和许多其他应用场景中发挥着关键作用。一、起源与发展JavaScript诞生于1995年,由Netscape公司的BrendanEich开发。最初它的设计目的是为了让网页能够具有交互性,能够在浏览器端进行一些简单的表单验证、动画效果等操作......
  • 请说说你对TypeScript中枚举的理解
    在TypeScript中,枚举(Enum)是一种特殊的数据类型,它允许我们定义一组命名的常量。这些常量可以是数字或字符串类型,用于表示一组特定的值。在前端开发中,枚举可以帮助我们更好地组织和理解代码,提高代码的可读性和可维护性。以下是对TypeScript中枚举的一些理解:定义枚举:在TypeScript中......
  • TypeScript中的Declare关键字有什么作用?
    在TypeScript中,declare关键字主要用于类型声明文件中(通常是.d.ts文件),用于表示某个变量、函数、类、模块等存在于JavaScript环境中,但在当前的TypeScript文件中并没有具体的实现。这有助于TypeScript编译器理解JavaScript库或环境中的全局变量、函数等,从而提供类型检查......
  • TypeScript中支持的访问修饰符有哪些?
    在TypeScript中,访问修饰符主要有三种:public、private和protected。这些修饰符可以用来设置类成员(包括属性和方法)的可见性。public:这是默认的访问修饰符,如果未明确指定访问修饰符,则默认为public。public成员在类的内部和外部都是可见的。classAnimal{publicname:......
  • 请说下在TypeScript中命名空间与模块的区别?
    在TypeScript中,命名空间和模块是两个重要的概念,但它们之间存在一些关键的区别。命名空间(Namespace)命名空间,也被称为内部模块,是TypeScript早期版本中用于组织代码的一种方式。它允许你将相关的类型、变量、函数等封装在一个命名空间内,以避免命名冲突,并提供更好的代码组织结构。命......
  • 请说下TypeScript中的类型断言是什么?
    在TypeScript中,类型断言(TypeAssertion)是一种告诉编译器“相信我,我知道我在做什么”的方式。它允许开发者明确地指定一个值的类型,而不是让TypeScript编译器自动推断。这在某些情况下是非常有用的,特别是当编译器无法正确推断类型,或者我们需要覆盖编译器的推断时。类型断言的语法有......
  • 为什么要推荐使用TypeScript?
    推荐使用TypeScript进行前端开发的原因主要有以下几点:静态类型检查:TypeScript引入了静态类型系统,允许在编译时进行类型检查。这有助于捕获潜在的错误并提供更好的代码提示,从而减少运行时错误,改善代码的可靠性和可维护性。静态类型检查能够在开发阶段就防止很多类型错误的发生,提......
  • 请说说TypeScript有哪些特性?
    TypeScript是一种由微软开发的开源编程语言,它是JavaScript的一个超集,主要提供了类型系统和对ES6+的支持。TypeScript在前端开发中越来越受欢迎,这主要归功于它的以下特性:静态类型检查:TypeScript在编译时进行类型检查,这有助于在开发过程中捕获类型错误,从而减少运行时错误。这种类......
  • 请说说你对TypeScript中模块的理解
    在TypeScript(以及现代JavaScript)中,模块是一个非常重要的概念。模块允许我们将代码分割成多个独立的、可复用的片段,这些片段可以按需加载和组合,以构建更复杂的应用程序。在前端开发中,模块的使用尤其重要,因为它们有助于我们更好地组织和管理代码,提高代码的可维护性和可扩展性。以下......