2017-01-09 17 views
-1

Я создаю веб-сервер в go, который действует как прокси. Мне нужно получить информацию о клиенте, чтобы дать ответ. Вот мой код:Как получить LocalAddress в GO?

func main(){ 

    li, err := net.Listen("tcp", ":8000") 
    if err != nil{ 
     log.Fatalln(err.Error()) 
    } 
    defer li.Close() 

    for{ 

     conn, err := li.Accept() 
     if err != nil { 
      log.Fatalln(err.Error()) 
     } 
     local := conn.LocalAddr 
     remote := conn.RemoteAddr 
     fmt.Println(string(local.Network)) 
     fmt.Println(string(remote.String)) 

     go handleConn(conn) 
    } 
} 

Проблема заключается в том, когда я бегу я получаю это сообщение:

local.Network undefined (type func() net.Addr has no field or method Network) 

но документация говорит тип Addr имеет эти методы

https://golang.org/pkg/net/#Conn

https://golang.org/pkg/net/#Addr

ответ

1

Вы не вызываете функцию в своей local переменной, которую вы храните в самой функции.

Попробуйте это:

local := conn.LocalAddr() 
remote := conn.RemoteAddr()