ОШИБКА: наберите udp4 127.0.0.1:5024->xxx.xx.xxx.xx:1812: connect: была предпринята попытка операции с сокетом в недоступной сети - PullRequest
0 голосов
/ 10 июля 2019

Это простая клиентская программа, созданная для связи с удаленным сервером RADIUS для отправки запроса доступа с использованием языка Go .

Я использовал библиотеку https://github.com/blind-oracle/go-radius, а также следовал примеру клиента, приведенному в документе.

import (
    "github.com/blind-oracle/go-radius"
    "log"
    "net"
)

func main() {
    client := radius.Client{}
    packet := radius.New(radius.CodeAccessRequest, []byte("secret"))
    //packet.Add("Calling-Station-Id", "NAS-Fake")

    reply, err := client.Exchange(packet,&net.UDPAddr{IP:net.ParseIP("xxx.xx.xxx.xx"), Port: 1812}, &net.UDPAddr{IP:net.ParseIP("127.0.0.1"), Port: 5024})
    if err != nil {
        log.Fatal(err)
    }

    switch reply.Code {
    case radius.CodeAccessAccept:
        log.Println("Accept")
    case radius.CodeAccessReject:
        log.Println("Reject")
    }
}

Я пробовал использовать IPv4-адрес компьютера вместо 127.0.0,1 также.но при отладке ответом будет ноль.

И выдает ошибку-> dial udp4 172.0.0.1:5024->xxx.xx.xxx.xx:1812: bind: Запрошенный адрес недопустим в егоcontext.

Ожидается ненулевое значение для ответа.

...