6个版本

0.7.0 2024年8月7日
0.6.1 2024年7月30日
0.5.4 2024年7月27日

821网络编程

Download history 182/week @ 2024-07-14 79/week @ 2024-07-21 369/week @ 2024-07-28 159/week @ 2024-08-04 13/week @ 2024-08-11

每月672次下载

BSD-2-Clause-Patent

95KB
1.5K SLoC

awsipranges

快速查询AWS IP范围

License Crates.io Version docs.rs Tests Code Coverage


Demo

awsipranges 允许您从命令行搜索、过滤和使用公共 AWS IP地址范围,而无需编写复杂的JSON解析脚本或命令。此单一功能的CLI工具允许您快速回答诸如

  • 某个IPv4/IPv6地址是否是公共AWS IP地址?
    • 它属于哪个区域?
    • 它属于哪些服务?
    • 它属于哪些超网?
  • <some-cidr-block>的超网是什么?
  • 哪些服务在 ip-ranges.json 文件中发布了它们的IP范围?
  • <some-supported-service><some-region> 中使用了哪些IP范围?
  • <some-region> 连接了哪些本地/Wavelength区域?
  • <some-local-zone> 的IP范围是什么?

您可以通过过滤JSON文件来获取一些☝️问题的答案,但awsipranges 功能使过滤更加便捷。awsipranges可以解析并理解IPv4和IPv6 CIDR的结构,允许您像处理结构化数据一样处理IP地址范围,使您能够以人类和机器友好的格式输出结果。

如果您觉得这个项目很有用,请考虑在GitHub上给它一个星⭐。您的支持将非常感谢!

功能

  • 检索和缓存ip-ranges.json${HOME}/.aws/ip-ranges.json;默认情况下,每24小时刷新一次缓存。
  • 搜索:针对IPv4/IPv6地址CIDR(任何前缀长度)进行搜索,查看包含提供地址或CIDR的AWS IP地址范围。
  • 过滤:通过区域、服务、网络边界组和IP版本(IPv4/IPv6)过滤IP地址范围。
  • 多种输出格式:表格、CIDR和网络掩码输出格式,便于与其他工具集成。
  • 保存结果到CSV:将搜索和过滤结果保存到CSV文件,以便在您喜欢的电子表格应用程序中进行程序化使用或分析。
  • Rust包:此命令行工具的核心功能也可以作为库使用,允许您轻松将其添加到您的Rust工具或应用程序中。

安装

您可以从源代码构建并安装awsipranges或安装预构建的二进制文件。awsipranges支持

OS arm64 (AArch64) amd64 (x86_64) 系统C库
macOS ✅ Apple硅芯片 ✅ Intel硅芯片
Linux GNU (glibc)
Musl (libc)
Windows 10+ MSVC

遵循Rust平台支持以了解支持的靶机和操作系统以及库版本依赖关系。

预构建的二进制文件

您可以从发布页面下载并安装预构建的二进制文件,或使用以下安装脚本,这些脚本将为您选择并安装正确的二进制文件。

Homebrew

brew install cmlccie/tap/awsipranges

Shell脚本

请参阅发布页面以获取最新的{{version}}

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cmlccie/awsipranges/releases/download/{{version}}/awsipranges-installer.sh | sh

PowerShell脚本

请参阅发布页面以获取最新的{{version}}

powershell -c "irm https://github.com/cmlccie/awsipranges/releases/download/{{version}}/awsipranges-installer.ps1 | iex"

从源代码构建

要从源代码构建和安装awsipranges,您需要在您的系统上安装Rust工具链。然后,您可以使用cargo install下载并构建您所需的版本。

Crates.io

crates.io安装已发布的awsipranges版本。

cargo install awsipranges

GitHub

GitHubmain分支安装最新版本的awsipranges(可能尚未发布)。

cargo install --git https://github.com/cmlccie/awsipranges.git

问题和改进

如果您遇到任何问题或错误,或者有关于改进和新特性的想法,请在我们GitHub Issues页面上报告。您的反馈是一份礼物,帮助我们为所有人改进工具!

致谢

我感谢以下团队和个人,没有他们,这个工具将无法实现或迅速构建

其他作品

  • netrange - 使用LUA脚本从多个云提供商下载和过滤IP范围。
  • aws-ip-ranges - 提供作为const结构体的AWS IP范围数据。

我为什么制作这个?

我经常需要从AWS IP范围中获取答案。在我为AWS工作期间,我发布了一个类似的Python库。然后,在学习Rust时,我需要一些东西来构建!😎这个工具对我很有帮助——也许它对您也很有用。

依赖项

~9–25MB
~341K SLoC