v0.0.0-...-0cf3de4 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2016 License: MPL-2.0, MIT Imports: 10 Imported by: 0



Package iplist handles the P2P Plaintext Format described by https://en.wikipedia.org/wiki/PeerGuardian#P2P_plaintext_format.



This section is empty.


This section is empty.


This section is empty.


type IPList

type IPList struct {
	// contains filtered or unexported fields

func New

func New(initSorted []Range) *IPList

Create a new IP list. The given ranges must already sorted by the lower bound IP in each range. Behaviour is undefined for lists of overlapping ranges.

func NewFromReader

func NewFromReader(f io.Reader) (ret *IPList, err error)

Creates an IPList from a line-delimited P2P Plaintext file.

func (*IPList) Lookup

func (me *IPList) Lookup(ip net.IP) (r Range, ok bool)

Return the range the given IP is in. Returns nil if no range is found.

func (*IPList) NumRanges

func (me *IPList) NumRanges() int

func (*IPList) WritePacked

func (me *IPList) WritePacked(w io.Writer) (err error)

type PackedIPList

type PackedIPList []byte

func NewFromPacked

func NewFromPacked(b []byte) PackedIPList

func (PackedIPList) Lookup

func (me PackedIPList) Lookup(ip net.IP) (r Range, ok bool)

func (PackedIPList) NumRanges

func (me PackedIPList) NumRanges() int

type Range

type Range struct {
	First, Last net.IP
	Description string

func ParseBlocklistP2PLine

func ParseBlocklistP2PLine(l []byte) (r Range, ok bool, err error)

Parse a line of the PeerGuardian Text Lists (P2P) Format. Returns !ok but no error if a line doesn't contain a range but isn't erroneous, such as comment and blank lines.

func (*Range) String

func (r *Range) String() string

type Ranger

type Ranger interface {
	// Return a Range containing the IP.
	Lookup(net.IP) (r Range, ok bool)
	// If your ranges hurt, use this.
	NumRanges() int

An abstraction of IP list implementations.

func MMapPacked

func MMapPacked(filename string) (ret Ranger, err error)


Path Synopsis
Takes P2P blocklist text format in stdin, and outputs the packed format from the iplist package.
Takes P2P blocklist text format in stdin, and outputs the packed format from the iplist package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL