https://github.com/adrianosela/wnlm
Go bindings for the Windows Network List Manager API.
https://github.com/adrianosela/wnlm
golang network networking networklistmanager windows
Last synced: 2 months ago
JSON representation
Go bindings for the Windows Network List Manager API.
- Host: GitHub
- URL: https://github.com/adrianosela/wnlm
- Owner: adrianosela
- License: mit
- Created: 2025-03-09T22:15:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-16T15:58:40.000Z (over 1 year ago)
- Last Synced: 2025-12-26T19:36:20.624Z (6 months ago)
- Topics: golang, network, networking, networklistmanager, windows
- Language: Go
- Homepage:
- Size: 29.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wnlm
[](https://goreportcard.com/report/github.com/adrianosela/wnlm)
[](https://godoc.org/github.com/adrianosela/wnlm)
[](https://github.com/adrianosela/wnlm/issues)
[](https://github.com/adrianosela/wnlm/blob/master/LICENSE)
Go bindings for the Windows [Network List Manager API](https://learn.microsoft.com/en-us/windows/win32/nla/portal).
> The Network List Manager API enables applications to retrieve a list of available network connections. Applications can filter networks, based on attributes and signatures, and choose the networks best suited to their task. The Network List Manager infrastructure notifies applications of changes in the network environment, thus enabling applications to dynamically update network connections.
This is built on top of [github.com/go-ole/go-ole](https://github.com/go-ole/go-ole) (Go bindings for Windows COM using shared libraries instead of cgo), using the Network List Manager API interface definitions from [gitlab.winehq.org/wine/wine](https://gitlab.winehq.org/wine/wine/-/blob/1c4350ac/include/netlistmgr.idl).
### Usage
```
import "github.com/adrianosela/wnlm"
func main () {
wnlm.Initialize()
defer wnlm.Uninitialize()
nlm, err := wnlm.NewNetworkListManager()
if err != nil {
// handle err
}
defer nlm.Release()
// do stuff...
}
```
### Examples
- [Enumerate Networks](./_examples_/enumerate_networks/)