gateway

package module
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2023 License: BSD-3-Clause Imports: 13 Imported by: 265

README

gateway

A simple library for discovering the IP address of the default gateway.

Example:

package main

import (
    "fmt"

    "github.com/jackpal/gateway"
)

func main() {
    gateway, err := gateway.DiscoverGateway()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println("Gateway:", gateway.String())
   }
}

Provides implementations for:

  • Darwin (macOS)
  • Dragonfly
  • FreeBSD
  • Linux
  • NetBSD
  • OpenBSD
  • Solaris
  • Windows

Other platforms use an implementation that always returns an error.

Pull requests for other OSs happily considered!

Versions

v1.0.9
  • Add go.mod and go.sum files.
  • Use "golang.org/x/net/route" to implement all BSD variants.
    • As a side effect this adds support for Dragonfly and NetBSD.
  • Add example to README.
  • Remove broken continuous integration.
v1.0.8
  • Add support for OpenBSD
  • Linux parser now supports gateways with an IP address of 0.0.0.0
  • Fall back to netstat on darwin systems if route fails.
  • Simplify Linux /proc/net/route parsers.

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func DiscoverGateway

func DiscoverGateway() (ip net.IP, err error)

DiscoverGateway is the OS independent function to get the default gateway

Example
gateway, err := DiscoverGateway()
if err != nil {
	fmt.Println(err)
} else {
	fmt.Println("Gateway:", gateway.String())
}

func DiscoverInterface added in v1.0.7

func DiscoverInterface() (ip net.IP, err error)

DiscoverInterface is the OS independent function to call to get the default network interface IP that uses the default gateway

Types

This section is empty.

Jump to

Keyboard shortcuts

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