All Projects → wuchunfu → IpProxyPool

wuchunfu / IpProxyPool

Licence: Apache-2.0 License
Golang 实现的 IP 代理池, 涉及到的技术点: go gorm proxy proxypool ip crawler 爬虫 mysql viper cobra

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to IpProxyPool

Proxypool
Golang实现的IP代理池
Stars: ✭ 1,134 (+3050%)
Mutual labels:  ip, proxypool
Proxybroker
Proxy [Finder | Checker | Server]. HTTP(S) & SOCKS 🎭
Stars: ✭ 2,767 (+7586.11%)
Mutual labels:  proxy-server, proxypool
Spoon
🥄 A package for building specific Proxy Pool for different Sites.
Stars: ✭ 173 (+380.56%)
Mutual labels:  ip, proxypool
HttpProxy
JAVA实现的IP代理池,支持HTTP与HTTPS两种方式
Stars: ✭ 37 (+2.78%)
Mutual labels:  ip, proxypool
Ok ip proxy pool
🍿爬虫代理IP池(proxy pool) python🍟一个还ok的IP代理池
Stars: ✭ 196 (+444.44%)
Mutual labels:  ip, proxypool
torchestrator
Spin up Tor containers and then proxy HTTP requests via these Tor instances
Stars: ✭ 32 (-11.11%)
Mutual labels:  proxy-server, proxypool
NullRAT
Your next stealthy Remote Access Trojan
Stars: ✭ 104 (+188.89%)
Mutual labels:  ip
ip scan
Scan a list of IPs quickly using multithreading
Stars: ✭ 13 (-63.89%)
Mutual labels:  ip
requests-ip-rotator
A Python library to utilize AWS API Gateway's large IP pool as a proxy to generate pseudo-infinite IPs for web scraping and brute forcing.
Stars: ✭ 323 (+797.22%)
Mutual labels:  ip
Ip
🌏根据IpV4、IpV6地址获取定位信息的PHP🐘组件 PHP components that obtain location information based on IpV4, IpV6 addresses
Stars: ✭ 23 (-36.11%)
Mutual labels:  ip
swift-ipify
Swift library for checking your IP address from ipify.org
Stars: ✭ 37 (+2.78%)
Mutual labels:  ip
findip
🔧 Python Script For Finding All Available Local IP Addresses
Stars: ✭ 38 (+5.56%)
Mutual labels:  ip
L2-Emulator
Implementing a Layer-2 Emulator in C using Graphs and LinkedList
Stars: ✭ 17 (-52.78%)
Mutual labels:  ip
lua-resty-ipcidr
A simple and very fast function to check against CIDR
Stars: ✭ 17 (-52.78%)
Mutual labels:  ip
mps
MPS is a high-performance HTTP(S) proxy library that supports forward proxies, reverse proxies, man-in-the-middle proxies, tunnel proxies, Websocket proxies. MPS 是一个高性能HTTP(s)中间代理库,它支持正向代理、反向代理、中间人代理、隧道代理、Websocket代理
Stars: ✭ 64 (+77.78%)
Mutual labels:  proxy-server
docker-imgproxy
🌐 An ultra fast, production-grade on-the-fly image processing web server. Designed for high throughput with Nginx caching. Powered by imgproxy.
Stars: ✭ 45 (+25%)
Mutual labels:  proxy-server
vue-ip
IP Address input for VueJS 2.x
Stars: ✭ 25 (-30.56%)
Mutual labels:  ip
ipd
查询ip地理信息,多种查询模式,高效,具有缓存机制,并可使用elasticsearch构建自己的ip数据库
Stars: ✭ 24 (-33.33%)
Mutual labels:  ip
go-reverse-proxy
Reverse proxy with simple routing configuration and override behaviour
Stars: ✭ 21 (-41.67%)
Mutual labels:  proxy-server
FullProxy
Bind and reverse connection based, SOCKS5, HTTP and PortForward based portable proxy
Stars: ✭ 22 (-38.89%)
Mutual labels:  proxy-server

Golang实现的IP代理池

采集免费的代理资源为爬虫提供有效的IP代理

系统功能

  • 自动爬取互联网上公开的免费代理IP
  • 周期性验证代理IP有效性
  • 提供http接口获取可用IP

系统架构

architecture image

代理池设计

代理池由四部分组成:

  • Fetcher:

代理获取接口,目前有几个 免费代理源 ,每调用一次就会抓取这些网站最新的代理放入Channel,可自行 添加额外的代理获取接口

  • Channel:

临时存放采集来的代理,通过访问稳定的网站去验证代理的有效性,有效则存入数据库

  • Schedule:

用定时的计划任务去检测数据库中代理IP的可用性,删除不可用的代理。同时也会主动通过 Fetcher 去获取最新代理

  • Api:

代理池的访问接口,提供 get 接口输出 JSON ,方便爬虫直接使用

目前支持的代理

代理获取接口,目前抓取这几个网站的 免费代理 ,当然也支持自己扩展代理接口;

安装及使用

源码安装

# 克隆项目
git clone https://github.com/wuchunfu/IpProxyPool.git

# 切换项目目录
cd IpProxyPool

# 修改数据库信息
vi conf/config.yaml

host: 127.0.0.1
dbName: IpProxyPool
username: IpProxyPool
password: IpProxyPool

# 执行 sql 脚本,创建数据库表
source docs/db/mysql.sql

# 安装go依赖包
go list (go mod tidy)

# 编译
go build IpProxyPool.go

# 赋予可执行权限
chmod +x IpProxyPool

# 运行
./IpProxyPool proxy-pool

Docker 安装

Docker 请自行安装,安装完 docker 后查看是否安装 docker-compose 执行这个命令查看是否成功安装 docker-compose, docker-compose -version

# 克隆项目
git clone https://github.com/wuchunfu/IpProxyPool.git

# 进入项目目录
cd IpProxyPool

# 执行以下命令启动
docker-compose -f docker-compose.yaml up -d

# 执行以下命令停止
docker-compose -f docker-compose.yaml down

访问

# web 访问
http://127.0.0.1:3000

# or
# 随机输出可用的代理
curl http://127.0.0.1:3000/all

# 随机输出HTTP代理
curl http://127.0.0.1:3000/http

# 随机输出HTTPS代理
curl http://127.0.0.1:3000/https

计划任务

诚挚的感谢

  • 首先感谢您的使用,如果觉得程序还不错也能帮助您解决实际问题,不妨添个赞以鼓励本人继续努力,谢谢!
  • 如果您对程序有任何建议和意见,也欢迎提交issue。
  • 当然,如果您愿意贡献代码和我一起改进本程序,那再好不过了。

注意

本代码库仅用于学习研究使用,请勿用于非法用途,本人不承担由此带来的任何法律问题。

交流

欢迎关注 全栈公园 ,有什么问题可以在 全栈公园 公众号输入 开源交流 进行咨询

全栈公园

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].