5cc5e1340bfa9368c5d6ba5eb7e2633ab3908205
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 -- -f 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 - fmt:
cargo fmt --check - miri:
cargo +nightly hack --feature-powerset miri test - docs:
RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features - publish:
cargo publish --dry-run -p ipfilter
Description
Languages
Rust
89.6%
Shell
10.4%