]> Sergey Matveev's repositories - btrtrc.git/blob - iplist/cmd/iplist/main.go
gofumpt
[btrtrc.git] / iplist / cmd / iplist / main.go
1 package main
2
3 import (
4         "fmt"
5         "log"
6         "net"
7         "os"
8
9         "github.com/anacrolix/tagflag"
10
11         "github.com/anacrolix/torrent/iplist"
12 )
13
14 func main() {
15         flags := struct {
16                 tagflag.StartPos
17                 Ips []net.IP
18         }{}
19         tagflag.Parse(&flags)
20         il, err := iplist.NewFromReader(os.Stdin)
21         if err != nil {
22                 log.Fatalf("error loading ip list: %s", err)
23         }
24         log.Printf("loaded %d ranges", il.NumRanges())
25         for _, ip := range flags.Ips {
26                 r, ok := il.Lookup(ip)
27                 if ok {
28                         fmt.Printf("%s is in %v\n", ip, r)
29                 } else {
30                         fmt.Printf("%s not found\n", ip)
31                 }
32         }
33 }