Я пытался использовать модуль: https://godoc.org/github.com/hirochachacha/go-smb2#RemoteFile .ReadAt Для аутентификации на моем smb2 на компьютере windows процесс аутентификации идет хорошо, но их не так много. примеров сценариев там ..
Моя функция:
func connect_client(host string, port string, share string) {
//Checks for a connection on port
conn, err := net.Dial("tcp", host+":"+port)
if err != nil {
panic(err)
}
defer conn.Close()
//smb auth
d := &smb2.Dialer{
Initiator: &smb2.NTLMInitiator{
User: "Testing",
Password: "password123",
Domain: "win10",
},
}
client, err := d.Dial(conn)
if err != nil {
fmt.Println("Connection failed")
} else {
fmt.Println("Connection Succeeded")
}
defer client.Logoff()
//escape the liternal strings
host = `\\` + host + `\` + share
fmt.Println(host)
fs, err := client.Mount(host)
if err != nil {
panic(err)
}
defer fs.Umount()
fmt.Println(fs)
}
как только я распечатаю fs (* RemoteFileSystem) Я пытаюсь понять, что это значит и как я может вернуть его значение, чтобы я мог использовать его в других функциях, кроме локальной, где распознается «fs».
В конечном итоге мне нужно перечислить все доступные каталоги (например, smbclient) и проверить разрешения для их.
Из приведенного выше синтаксиса я получаю следующий вывод: & {0xc000048650 0xc0000160d8}
Может кто-нибудь объяснить мне, что это значит, и как я могу использовать это значение, чтобы вернуть его для других функций?
Спасибо!