红队攻防 | 解决HW被疯狂封IP姿势~(附下载)

news2024/11/14 4:00:46

本项目其实就是个简单的代理服务器,经过小小的修改。加了个代理池进来。渗透、爬虫的时候很容易就会把自己ip给ban了,所以就需要ip代理池了。

图片

ProxyPool

爬虫代理IP池项目,主要功能为定时采集网上发布的免费代理验证入库,定时验证入库的代理保证代理的可用性,提供API和CLI两种使用方式。同时你也可以扩展代理源以增加代理池IP的质量和数量。

  • 文档: https://proxy-pool.readthedocs.io/zh/latest/

  • 支持版本: 图片 图片 图片图片

  • 测试地址: http://demo.spiderpy.cn (勿压谢谢)

  • 付费代理推荐: luminati-china. 国外的亮数据BrightData(以前叫luminati)被认为是代理市场领导者,覆盖全球的7200万IP,大部分是真人住宅IP,成功率扛扛的。付费套餐多种,需要高质量代理IP的可以注册后联系中文客服,开通后有5美金赠送和教程指引(PS:用不明白的同学可以参考这个使用教程)。

运行项目

下载代码:
  • git clone

git clone git@github.//github.com/jhao104/proxy_pool/releases 下载对应zip文件
  • releases

https://github.com/jhao104/proxy_pool/releases 下载对应zip文件
安装依赖:
pip install -r requirements.txt
更新配置:
# setting.py 为项目配置文件

# 配置API服务

HOST = "0.0.0.0"               # IP
PORT = 5000                    # 监听端口


# 配置数据库

DB_CONN = 'redis://:pwd@127.0.0.1:8888/0'


# 配置 ProxyFetcher

PROXY_FETCHER = [
    "freeProxy01",      # 这里是启用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py
    "freeProxy02",
    # ....
]

启动项目:

# 如果已经具备运行条件, 可用通过proxyPool.py启动。
# 程序分为: schedule 调度程序 和 server Api服务

# 启动调度程序
python proxyPool.py schedule

# 启动webApi服务
python proxyPool.py server

Docker Image

docker pull jhao104/proxy_pool

docker run --env DB_CONN=redis://:password@ip:port/0 -p 5010:5010 jhao104/proxy_pool:latest

docker-compose

项目目录下运行:

docker-compose up -d

使用

  • Api

启动web服务后, 默认配置下会开启 http://127.0.0.1:5010 的api接口服务:

图片

  • 爬虫使用

  如果要在爬虫代码中使用的话, 可以将此api封装成函数直接使用,例如:

import requests

def get_proxy():
    return requests.get("http://127.0.0.1:5010/get/").json()

def delete_proxy(proxy):
    requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))

# your spider code

def getHtml():
    # ....
    retry_count = 5
    proxy = get_proxy().get("proxy")
    while retry_count > 0:
        try:
            html = requests.get('http://www.example.com', proxies={"http": "http://{}".format(proxy)})
            # 使用代理访问
            return html
        except Exception:
            retry_count -= 1
    # 删除代理池中代理
    delete_proxy(proxy)
    return None

扩展代理

项目默认包含几个免费的代理获取源,但是免费的毕竟质量有限,所以如果直接运行可能拿到的代理质量不理想。所以,提供了代理获取的扩展方法。微信搜索公众号:Linux技术迷,回复:linux 领取资料 。

添加一个新的代理源方法如下:

  • 1、首先在ProxyFetcher类中添加自定义的获取代理的静态方法, 该方法需要以生成器(yield)形式返回host:ip格式的代理,例如:

    class ProxyFetcher(object):
        # ....
    
        # 自定义代理源获取方法
        @staticmethod
        def freeProxyCustom1():  # 命名不和已有重复即可
    
            # 通过某网站或者某接口或某数据库获取代理
            # 假设你已经拿到了一个代理列表
            proxies = ["x.x.x.x:3128", "x.x.x.x:80"]
            for proxy in proxies:
                yield proxy
            # 确保每个proxy都是 host:ip正确的格式返回
  • 2、添加好方法后,修改setting.py文件中的PROXY_FETCHER项:

PROXY_FETCHER下添加自定义方法的名字:

PROXY_FETCHER = [    "freeProxy01",        "freeProxy02",    # ....    "freeProxyCustom1"  #  # 确保名字和你添加方法名字一致]

  schedule 进程会每隔一段时间抓取一次代理,下次抓取时会自动识别调用你定义的方法。

免费代理源

目前实现的采集免费代理网站有(排名不分先后, 下面仅是对其发布的免费代理情况, 付费代理测评可以参考https://zhuanlan.zhihu.com/p/33576641):

图片

工具下载地址: 红队攻防 | 解决HW被疯狂封IP姿势~(附下载)icon-default.png?t=N6B9https://mp.weixin.qq.com/s/8nBYhd4aSV-NXkw6fRj3VQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/817948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排序算法(冒泡排序、选择排序、插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序)

🍕博客主页:️自信不孤单 🍬文章专栏:数据结构与算法 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏关注 文章目录 🍓冒泡排序概念算法步骤动图演示代码 &#x1f34…

ED透明屏有哪些应用场景?

ED透明屏是一种新型的显示技术,它采用了电致变色技术,可以实现屏幕的透明显示。ED透明屏的出现,为我们的生活带来了许多便利和创新。 首先,ED透明屏可以应用于商业广告领域。 传统的广告牌往往是固定的,无法改变内容&…

浅入浅出MySQL事务

什么是事务 事务是由数据库中一系列的访问和更新组成的逻辑执行单元。 事务的逻辑单元中可以是一条SQL语句,也可以是一段SQL逻辑,这段逻辑要么全部执行成功,要么全部执行失败。 事务处理的基本原则是“原子性”、“一致性”、“隔离性”和…

vue 修改端口号

在根目录创建一个vue.config.js文件夹 module.exports {lintOnSave: false,devServer: {port: 3000,open: true} }运行后

降压IC 外置MOS DC48V转24V 3A 30V-80V转24V 3A 高压大功率

摘要:本文介绍了AH8A50QA降压IC外置MOS芯片方案,可将输入电压范围从30V至80V和9V至100V转换为24V输出,并提供最大3A的输出电流。该芯片方案采用了内置MOS管和QFN-20封装,适用于电动车和汽车车载充电源等高压大功率应用场景。 随着…

Cpp6 — 模板

模板:这里有一个概念:泛型编程---针对广泛的类型去写代码编程。之前都是针对具体的类型进行编程。 模板分为函数模板和类模板。 函数模板 当我们想要使用一个swap可以用作多种类型时,可以使用模板。这样我们就可以不使用重载,不…

商城小程序踩坑(一):iPhone 11、iPhoneX 等设备底部安全区域/小黑条适配

一、前言 这两天正在开发商城小程序-商品详情页,在做设备测试的时候突然发现详情页底部—— 购物车 和 购买区域在苹果手机上不适配,并且还存在小黑条。 底部功能没有办法正常使用。 如下图所示: 解决后效果,如下图所示&#xff…

Swagger之Hello World !

目录 ■1.前言・Swagger介绍 ■2.例子,如果基于Spring Boot项目,实现Swagger---非常简单 2.1.已有的SpringBoot项目 2.2.修改POM文件 2.3.添加Config文件…

html请求谷歌音频跨域问题(谷歌翻译接口)虚拟机ping不通google(下载谷歌音频、下载百度翻译音频)

文章目录 调用谷歌翻译接口,尝试了几种方案,都提示跨域不行第一种(通过js代码获取音频文件的Blob对象,提示跨域了)代码结果 第二种(尝试新窗打开音频url,404,估计也是跨域了&#xf…

StarRocks Friends 广州站精彩回顾

上周六,StarRocks & Friends 活动在羊城广州成功举行,社区的小伙伴齐聚一堂,共同探讨了 StarRocks 在业界的应用实践和湖仓一体等热门话题。 本文总结了技术交流活动的关键内容和视频资料,感谢社区每一位小伙伴的支持和参与&…

如何提高接口测试覆盖率?

接口测试是测试系统组件间接口的一种测试。 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 接口测试该如何提高测试的覆盖率呢&#…

PCL点云处理之最小二乘空间直线拟合(3D) (二百零二)

PCL点云处理之最小二乘空间直线拟合(3D) (二百零二) 一、算法简介二、实现代码三、效果展示一、算法简介 对于空间中的这样一组点:大致呈直线分布,散乱分布在直线左右, 我们可采用最小二乘方法拟合直线,更进一步地,可以通过点到直线的投影,最终得到一组严格呈直线分布…

软件测试一周面试十家公司,分享面试经历

从开始面试讲起,公司规模我分成5类:创业公司0-20人,小型公司20-40人,中小型50-99,中型公司100-499即将上市的那种,已上市公司100-499。 创业公司 第一个面试的那家创业公司特别坑,开始面试&am…

4年测试“我“该何去何从?测试还是测试开发?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 4年测试&#xff…

秋招备战笔试Day2

目录 单选 1.A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明: 2.下面代码将输出什么内容:() 3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有(&…

vlan access, trunk, hybrid (tagged/untagged) 笔记

vlan 接口和配置 PVID(port vlan ID) 定义 pvid 主要目的: 当交换机接口收到没有 vlan tag 标签的包时,接口会将定义的 pvid 作为当前包的 vlan id。当对映 pvid vlan 的包,通过当前交换机接口发出时,接…

ADSelfService Plus:保护密码安全的最佳解决方案

密码安全是当今数字时代中至关重要的话题。随着互联网和信息技术的迅速发展,我们的生活变得越来越数字化,密码已成为我们生活中不可或缺的一部分。然而,随着各种网络威胁和黑客攻击不断增加,保护我们的密码变得越来越重要。 密码安…

测试工程师刚入职如何快速熟悉需求并输出测试用例?

刚入职第一天,早上办完入职,下午就就分配了测试任务,2个模块13条短信验证,2天内输出测试用例(xmind输出功能点,excel书写业务流)。测试负责人给我们快速讲了一下业务,在这过程中大概…

openssl/bn.h: No such file or directory

报错截图 解决方法 ubuntu apt install libssl-dev -y centos yum install openssl-devel -y

echarts实现多层环图(复制粘贴即可)

data里面参数配置: // 多重环图optionCircle: {tooltip: {show: false,trigger: item,formatter: "{a} : {c} ({d}%)"},color: [#3AB1EB, #D48B6A, #5B41C8, #FE7E02],legend: {orient: horizontal,itemWidth: 30, // 图例标记的图形宽度。itemHeight…