xff

package module
v0.0.0-...-325cb76 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2015 License: MIT Imports: 3 Imported by: 0

README

X-Forwarded-For middleware fo Go godoc

Package xff is a net/http middleware/handler to parse Forwarded HTTP Extension in Golang.

Example usage

Install xff:

go get github.com/sebest/xff

Edit server.go:

package main

import (
  "net/http"

  "github.com/sebest/xff"
)

func main() {
  handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello from " + r.RemoteAddr + "\n"))
  })

  http.ListenAndServe(":8080", xff.Handler(handler))
}

Then run your server:

go run server.go

The server now runs on localhost:8080:

$ curl -D - -H 'X-Forwarded-For: 42.42.42.42' http://localhost:8080/
HTTP/1.1 200 OK
Date: Fri, 20 Feb 2015 20:03:02 GMT
Content-Length: 29
Content-Type: text/plain; charset=utf-8

hello from 42.42.42.42:52661

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetRemoteAddr

func GetRemoteAddr(r *http.Request) string

GetRemoteAddr parses the given request, resolves the X-Forwarded-For header and returns the resolved remote address.

func Handler

func Handler(h http.Handler) http.Handler

Handler is a middleware to update RemoteAdd from X-Fowarded-* Headers.

func HandlerFunc

func HandlerFunc(w http.ResponseWriter, r *http.Request)

HandlerFunc is a Martini compatible handler

func IsPublicIP

func IsPublicIP(ip net.IP) bool

IsPublicIP returns true if the given IP can be routed on the Internet

func Parse

func Parse(ipList string) string

Parse parses the value of the X-Forwarded-For Header and returns the IP address.

func XFF

XFF is a Negroni compatible interface

Types

This section is empty.

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

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