如何获取当前网络位置名称?

发布于 2024-08-28 06:38:07 字数 158 浏览 7 评论 0原文

在系统网络首选项中有一些位置名称。如何获取当前或活动的网络位置名称以及所有网络位置的列表?
我猜 SystemConfiguration.framework 支持这个,但我没有确切地知道要使用哪个 API。

提前感谢您的回答。

问候
Devara Gudda

In system network preference there are some location names.How to get the current or active network location name and list of all network locations?
I guess SystemConfiguration.framework supports this but i didn't get exactly which API to use.

Thanks in advance for your answer.

Regards
Devara Gudda

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烂柯人 2024-09-04 06:38:07

您可以使用 SCPreferencesCreate 获取首选项,然后 SCNetworkSetCopyAll 仅获取网络位置。 < code>SCNetworkSetGetName 将获取位置的名称。

SCPreferencesRef prefs = SCPreferencesCreate(NULL, @"SystemConfiguration", NULL);
NSArray *locations = (NSArray *)SCNetworkSetCopyAll(prefs);
for (id item in locations) {
    NSString *name = (NSString *)SCNetworkSetGetName((SCNetworkSetRef)item);
    ...
}
CFRelease(locations);
CFRelease(prefs);

阅读“系统配置编程指南”了解更多。

You can use SCPreferencesCreate to get the preferences, then SCNetworkSetCopyAll to get just the network locations. SCNetworkSetGetName will get the name of a location.

SCPreferencesRef prefs = SCPreferencesCreate(NULL, @"SystemConfiguration", NULL);
NSArray *locations = (NSArray *)SCNetworkSetCopyAll(prefs);
for (id item in locations) {
    NSString *name = (NSString *)SCNetworkSetGetName((SCNetworkSetRef)item);
    ...
}
CFRelease(locations);
CFRelease(prefs);

Read "System Configuration Programming Guidelines" for more.

橪书 2024-09-04 06:38:07

这是一个 swift 5.1 实现,用于获取所有可用网络位置的列表

    func getAvailabeNetworkLocation() -> [String]
{
    var results = [String]()

    
    var prefs : SCPreferences
    prefs = SCPreferencesCreate (nil, "Softech" as CFString, nil)!
    var sets : CFArray
    sets = SCNetworkSetCopyAll (prefs)!
    
    let count = CFArrayGetCount(sets) as Int
    var newSet : SCNetworkSet? = nil
    var bFound : Bool = false
    
   

    
    for nIndex  in 0..<count {
     let mySet = CFArrayGetValueAtIndex (sets, nIndex)
     let key = Unmanaged<SCNetworkSet>.fromOpaque(mySet!)
        newSet = key.takeUnretainedValue()
        let name : String = SCNetworkSetGetName(newSet!)! as String
        print("Network location name: \(name)")
     results.append(name)
    }
    return results
}

This is a swift 5.1 implementation to get list of all available network location

    func getAvailabeNetworkLocation() -> [String]
{
    var results = [String]()

    
    var prefs : SCPreferences
    prefs = SCPreferencesCreate (nil, "Softech" as CFString, nil)!
    var sets : CFArray
    sets = SCNetworkSetCopyAll (prefs)!
    
    let count = CFArrayGetCount(sets) as Int
    var newSet : SCNetworkSet? = nil
    var bFound : Bool = false
    
   

    
    for nIndex  in 0..<count {
     let mySet = CFArrayGetValueAtIndex (sets, nIndex)
     let key = Unmanaged<SCNetworkSet>.fromOpaque(mySet!)
        newSet = key.takeUnretainedValue()
        let name : String = SCNetworkSetGetName(newSet!)! as String
        print("Network location name: \(name)")
     results.append(name)
    }
    return results
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文