### 📄 [中文](README.md) | 📄 [English](English.md)
# ⚡ what this ?
This is a scan integration interface. The bottom layer is scanned by capturing packets**Can quickly scan ports and hosts and complete tasks across network segments**
### 🤔 Support[Platform|Skill]
+ [x] Platform
- [x] windows[10]
- [ ] linux[ubuntu、kali]
+ [x] Skill
- [x] Fingerprint Scan
- [x] Async Scan
- [x] Sync Scan
- [x] Service Scan
- [x] DNS Parse
- [x] Trace Route
- [x] ARP Spoofing
# ✨ Features
- async = ["async-io", "futures-lite", "futures"]
- service = ["native-tls", "sync"]
- os = []
- sync = []
- full = ["async", "sync", "os", "service"]
- default = ["sync"]
# 📖 Example
```toml
[dependencies]
e-libscanner = { version = "0.1", features = ["full"] }
```
- [Async_host_scan](examples/async_host_scan.rs)
- [Async_port_scan](examples/async_port_scan.rs)
- [Host_scan](examples/host_scan.rs)
- [Port_scan](examples/port_scan.rs)
- [Fingerprint_scan](examples/os.rs)
- [Service_detection](examples/service_detection.rs)
- [DNS parse](examples/dns.rs)
- [Traceroute](examples/tracert.rs)
- [Command api](examples/cmd_input.rs)
##### `command example`
```
e_libscanner -i 192.168.1.1-10 www.baidu.com --model Sync --scan Icmp --no-gui -- -AS
```
## `💡!important:`
####There are three requirements for building on the windows system environment:
You must use the rust version using the MSVC toolchain
You must install [WinPcap]( https://www.winpcap.org/ )Or [npcap]( https://nmap.org/npcap/ )(using [WinPcap]( https://www.winpcap.org/ )Version 4.1.3) (if using [npcap]( https://nmap.org/npcap/ ), please make sure to use "in [WinPcap]( https://www.winpcap.org/ )Install [npcap] in API compatibility mode( https://nmap.org/npcap/ )”)
You must put it in your bag. [WinPcap]( https://www.winpcap.org/ )The Lib in the developer package is located in the directory named Lib in the root directory of the repository. Alternatively, you can use any location listed in the% lib% / $env: lib environment variable. For the 64 bit toolchain, it is located in wpdpack / lib / x64 / packet. For the 32-bit toolchain, it is located in wpdpack / lib / packet.lib.
```
# 1.install npcap server https://npcap.com/dist/npcap-1.70.exe
setx LIB E:\libs\LIB
# download and decompression https://npcap.com/dist/npcap-sdk-1.13.zip
# npcap-sdk-1.13\Lib\x64\Packet.lib put to E:\libs\LIB
```
# 🚀 fast running
```
# host/port scan
cargo run --example host_scan
cargo run --example port_scan
# async scan
cargo run --example async_host_scan --features="async"
cargo run --example async_port_scan --features="async"
# Fingerprint scan
cargo run --example os --features="os"
# Service Scan
cargo run --example service_detection --features="service"
# DNS Parse
cargo run --example dns
# Trace Route
cargo run --example tracert
```
# 🦊 Applied Projects
[E-NetScan](https://github.com/EternalNight996/e-netscan.git): The network scanning project (which supports both command line and cross platform graphical interface) is under development..
# 🔭 why need to e-libscanner?
At first, I wanted to complete a cross network scanning project to help me complete some work. I referred to many open source projects, but these projects have some defects that do not meet my needs, so I have e-libscanner.
(process host and port scanning, and support domain name resolution, route tracking, fingerprint scanning, service scanning, asynchronous scanning, scalability and more)
The bottom layer is by calling [npcap]( https://nmap.org/npcap/ )And [WinPcap]( https://www.winpcap.org/ )Packet capture service;
The service API is [libpnet]( https://github.com/libpnet/libpnet );
# 🙋 Reference items and materials
✨ [RustScan] https://github.com/RustScan/RustScan : Rustlike nmapscan
✨ [netscan] https://github.com/shellrow/netscan : Rust Network Scanner
✨ [libpnet](libpnet) https://github.com/libpnet/libpnet ● The background base of the interplatform network - mainly using captivity services ([npcap]) https://nmap.org/npcap/ with [WinPcap]( https://www.winpcap.org/ )