e-libscanner 0.1.8

The bottom layer is scanned by capturing packets
Documentation

### 📄 [中文]README.md  | 📄  [English]EN.md


# ⚡ 这是什么?


这是一个扫描集成接口,底层是通过抓包方式扫描. **能够快速扫描端口与主机,并能够跨网段完成任务**


### 🤔 支持[平台|功能]

+ [x] 平台
    - [x] windows[10]
    - [ ] linux[ubuntu、kali]
+ [x] 扫描功能
    - [x] 指纹扫描
    - [x] 异步扫描
    - [x] 同步扫描
    - [x] 服务扫描
    - [x] DNS解析
    - [x] 路由追踪
    - [x] ARP欺骗

# ✨ 分支

- async = ["async-io", "futures-lite", "futures"]
- service = ["native-tls", "sync"]
- os = []
- sync = []
- full = ["async", "sync", "os", "service"]
- default = ["sync"]

# 📖 示例

```toml
[dependencies]
e-libscanner = { version = "0.1", features = ["full"] }
```
- [异步主机扫描]examples/async_host_scan.rs
- [异步端口扫描]examples/async_port_scan.rs
- [主机扫描]examples/host_scan.rs
- [端口扫描]examples/port_scan.rs
- [指纹扫描]examples/os.rs
- [服务扫描扫描]examples/service_detection.rs
- [DNS解析]examples/dns.rs
- [路由跟踪]examples/tracert.rs
- [命令行API示例]examples/cmd_input.rs
##### `命令行示例` 
```
e_libscanner -i 192.168.1.1-10 www.baidu.com --model Sync --scan Icmp --no-gui -- -AS
```
## `💡!重要:`
#### Windows系统环境上构建有三个要求
您必须使用使用MSVC工具链的Rust版本
您必须安装[WinPcap]https://www.winpcap.org/[npcap]https://nmap.org/npcap/(使用[WinPcap]https://www.winpcap.org/ 4.1.3版进行测试)(如果使用[npcap]https://nmap.org/npcap/,请确保使用“在[WinPcap]https://www.winpcap.org/ API兼容模式下安装[npcap]https://nmap.org/npcap/”)
你必须把它放在包里。[WinPcap]https://www.winpcap.org/开发者包中的lib位于该存储库根目录中名为lib的目录中。或者,您可以使用%LIB%/$Env:LIB环境变量中列出的任何位置。对于64位工具链,它位于WpdPack/Lib/x64/Packet中。对于32位工具链,它位于WpdPack/lib/Packet.lib中。
```
# 1.安装npcap服务 https://npcap.com/dist/npcap-1.70.exe
setx LIB E:\libs\LIB
# 下载并解压 https://npcap.com/dist/npcap-sdk-1.13.zip
# 将npcap-sdk-1.13\Lib\x64\Packet.lib放到E:\libs\LIB
```

# 🚀 快速运行

```
# 主机/端口扫描

cargo run --example host_scan
cargo run --example port_scan
# 异步扫描

cargo run --example async_host_scan --features="async"
cargo run --example async_port_scan --features="async"
# 指纹扫描

cargo run --example os --features="os"
# 服务扫描

cargo run --example service_detection --features="service"
# dns解析

cargo run --example dns
# 路由跟踪

cargo run --example tracert
```

# 🦊 已运用项目

[E-NetScan](https://github.com/EternalNight996/e-netscan.git): 网络扫描项目(同时支持命令行与跨平台图形化界面)正在开发中。。

# 🔭 为什么需要e-libscanner?

起初是想完成一个跨网络扫描项目,帮助自己完成一些工作,参考许多开源项目,但这些项目多少有些缺陷并不满足自己需求,所以有了e-libscanner。
(处理主机和端口扫描,同时支持域名解析、路由跟踪、指纹扫描、服务扫描、异步扫描、可扩展更多)
底层是通过调用[npcap](https://nmap.org/npcap/)与[WinPcap](https://www.winpcap.org/)抓包服务;
服务api为[libpnet](https://github.com/libpnet/libpnet);

# 🙋 参考项目与资料

✨[RustScan](https://github.com/RustScan/RustScan) :Rust仿nmap扫描库
✨[netscan](https://github.com/shellrow/netscan) :Rust 网络扫描库
✨[libpnet](https://github.com/libpnet/libpnet) 跨平台网络底层库--主要是调用抓包服务([npcap](https://nmap.org/npcap/)与[WinPcap](https://www.winpcap.org/))