Это простая клиентская программа, созданная для связи с удаленным сервером 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.
Ожидается ненулевое значение для ответа.