登录 立即注册

首页 > 绿虎论坛 > 软件开发 > 编程语言 > golang (发帖)

标题: 一款golang拒绝国外IP工具

作者: @Ta

时间: 01-03 13:18发布,01-06 17:12修改

点击: 361

DenyIP-go

概述

DenyIP 是一个用于保护大陆服务器免受非本地业务访问的防火墙工具。该工具能够高效地捕获网络数据包、提取源IP地址、进行地理位置判断,并将非大陆IP地址添加到IP黑名单中,从而严格限制非大陆来源的访问。

程序适合跑在Java高漏洞Linux服务器。

目前调用的百度API来获取精确IP地理位置。如果API被禁止,则工具废了。

说明:(目前有两个版本,Linux c版本和golang版本。Linux c的暂时不开源。闲着无聊玩玩golang复刻下。可能存在Bug,我也是刚学go)

构建项目

克隆项目仓库:

git clone https://git.aixiao.me/aixiao/DenyIP-go.git
cd DenyIP-go

构建

编译项目:

go build -o denyip

命令行选项

root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP-go# ./denyip -h
                Denyip firewall
        Version 0.1
        E-mail: aixiao@aixiao.me
        Date: 20250102
Usage of ./denyip:
  -child
        子进程模式
  -d    守护进程模式
  -f string
        指定 BPF 过滤器 (default "tcp")
  -h
  -help
        display this message
  -i string
        指定要使用的网络接口
  -l    列出可用的网络接口
  -o string
        保存捕获数据的输出文件(可选)
  -s string
        -s start 启动 Iptables 规则
        -s stop 停止 Iptables 规则
root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP-go#

示例命令

  • 启动守护进程

    ./denyip -i eth0 -f tcp
    ./denyip -d -i eth0 -f "tcp"
    
  • 启用Iptables规则

    ./denyip -s start
    
  • 禁用Iptables规则

    ./denyip -s stop
    
  • 查看帮助信息

    ./denyip -h
    
  • 关闭守护进程

    killall -15 denyip
    

运行实列

1.png(539.94 KB)


[隐藏样式|查看源码]


『回复列表(8|隐藏机器人聊天)』

1. 这是我之前写的,本地IP判断,用的ipip的.dat文件,不需要联网查询ip
image.png(97.25 KB)
(/@Ta/2025-01-03 18:23//)

2. @胡椒舰长,ipip的 的离线准确率怎样?
(/@Ta/2025-01-06 10:58//)

3. @爱消,95%
(/@Ta/2025-01-06 13:39//)

4. @胡椒舰长,对于我这需求,准确率要高。现有方案是:离线库初步判断,API二次判断。
(/@Ta/2025-01-06 17:11//)

5.

@胡椒舰长@爱消

划分给各国的 ip 段,是固定的吗?

如果是,准确率不应该是 100% 吗?

(/@Ta/2025-01-06 17:24//)

6. @无名啊,这就不知道了。
(/@Ta/2025-01-06 17:29//)

7.

@无名啊 并不是,例如划给美帝,但是美帝具体的厂商可以拿到其它国家使用;参考各大云,IP都是随便播的。
~~~

(/@Ta/2025-01-06 17:43//)

8.

@胡椒舰长,可以分享一下嘛
IDC库存状态 https://www.idc-status.com

(/@Ta/2025-01-06 23:41//)

回复需要登录

1月10日 01:34 星期五

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1