From 7702b5a431c8a2c9caa6a9b2c315ff882ab685d8 Mon Sep 17 00:00:00 2001 From: Leonid Nikitin Date: Sun, 15 Mar 2026 15:56:08 +0500 Subject: [PATCH] Add DShield example for fetching and parsing blocklist data --- examples/dshield.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 examples/dshield.go diff --git a/examples/dshield.go b/examples/dshield.go new file mode 100644 index 0000000..e507159 --- /dev/null +++ b/examples/dshield.go @@ -0,0 +1,43 @@ +package main + +import ( + "fmt" + + "git.kor-elf.net/kor-elf-shield/blocklist" + "git.kor-elf.net/kor-elf-shield/blocklist/parser" +) + +/** + * An example of how to get a list of bad IP addresses from the service https://dshield.org/ + */ + +func main() { + url := "https://www.dshield.org/block.txt" + extract := parser.NewCIDRTextExtract(0, 2, "\t") + pars, err := parser.NewText(extract) + if err != nil { + panic(err) + } + config := blocklist.NewConfig(0) + ips, err := blocklist.Get(url, pars, config) + if err != nil { + panic(err) + } + fmt.Println(ips) + + /* + // You can also get a range of IP addresses from this service (from to) + url := "https://www.dshield.org/block.txt" + extract := parser.NewIntervalTextExtract(0, 1, "\t") + pars, err := parser.NewText(extract) + if err != nil { + panic(err) + } + config := blocklist.NewConfigWithValidator(0, &parser.IPRangeValidator{}) + ips, err := blocklist.Get(url, pars, config) + if err != nil { + panic(err) + } + fmt.Println(ips) + */ +}