40e881589a817d565476b60e1cd2bc33ff36cfe8
IP Filter
A set of crates for the construction and use of optimized IP filtering mechanisms.
Setup
- Create
private/secret.shcontainingexport IP2LOCATION_TOKEN='' - Run
./private/dl.sh DB1LITECSV DB1LITECSVIPV6 - List available countries using
cargo run -- -i private/DB1-LITE-V4.CSV list - Generate a filter using
cargo run -- -i ./private/DB1-LITE-V4.CSV merge -c BD,BR,CN,HK,IL,IN,IQ,IR,KP,PK,QA,RO,RS,RU,SA,SG,SO,SS,SY,TR,TW,UA,DZ -o ./private/filter4.bin - Generate a filter using
cargo run -- -i ./private/DB1-LITE-V6.CSV merge -c BD,BR,CN,HK,IL,IN,IQ,IR,KP,PK,QA,RO,RS,RU,SA,SG,SO,SS,SY,TR,TW,UA,DZ -6 -o ./private/filter6.bin - Verify IP ranges using
cargo run -- -i ./private/filter4.bin loadorcargo run -- -i ./private/filter6.bin load -6
Round trip checks
diff <(cargo run -- -i ./private/DB1-LITE-V4.CSV merge -c BD,BR,CN,HK,IL,IN,IQ,IR,KP,PK,QA,RO,RS,RU,SA,SG,SO,SS,SY,TR,TW,UA,DZ) <(cargo run -- -i ./private/filter4.bin load)diff <(cargo run -- -i ./private/DB1-LITE-V6.CSV merge -c BD,BR,CN,HK,IL,IN,IQ,IR,KP,PK,QA,RO,RS,RU,SA,SG,SO,SS,SY,TR,TW,UA,DZ -6) <(cargo run -- -i ./private/filter6.bin load -6)
Various builds
- build:
cargo hack --feature-powerset build - clippy:
cargo hack --feature-powerset clippy -- -D warnings - test:
cargo hack --feature-powerset test - test old:
cargo +1.85 hack --feature-powerset test - miri:
cargo +nightly hack --feature-powerset miri test - fmt:
cargo fmt --check - docs:
RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features - semver:
cargo semver-checks --all-features - publish:
cargo publish --dry-run -p ipfilter
Description
Languages
Rust
89.6%
Shell
10.4%