如何使用 Objective C 删除 MAC 的网络接口
How to delete network interface of MAC using Objective C
我正在开发 MAC 应用程序,我必须在其中通过我的应用程序创建 VPN 连接。
我能够成功创建 VPN 连接,但现在我想删除我的应用程序在系统偏好设置网络中创建的接口。
我尝试了下面的代码 运行 成功但它没有从网络列表中删除它
service = SCNetworkServiceCopy(prefs, (__bridge CFStringRef)(config.serviceID));
Boolean isDeleted = SCNetworkServiceRemove(service);
还有其他删除网络接口的方法吗?
下面的方法删除了界面,但我们需要保存所做的更改。
SCNetworkServiceCopy(prefs, (__bridge CFStringRef)(config.serviceID));
要保存设置,我们需要调用以下方法来保存我们在网络中所做的更改。
SCPreferencesApplyChanges(prefs);
NSString* serviceIDa = @"FB6AD34D-DF8B-4FEC-B715-6F76EA5E5D83";
SCNetworkServiceRef serviceDelete = SCNetworkServiceCopy(prefs, (__bridge CFStringRef)(serviceIDa));
BOOL commit = 0;
SCPreferencesLock(prefs, TRUE);
SCNetworkServiceCopy(prefs, (__bridge CFStringRef) (serviceIDa));
SCNetworkSetRef networkSetAll = SCNetworkSetCopyCurrent(prefs);
if(SCNetworkSetRemoveService(networkSetAll,serviceDelete)){
NSLog(@"Remove services ");
commit = 1;
}
//现在提交更改
SCPreferencesUnlock(prefs);
if (commit) {
SCPreferencesCommitChanges(prefs);
SCPreferencesApplyChanges(prefs);
}
CFRelease(networkSetAll);
我正在开发 MAC 应用程序,我必须在其中通过我的应用程序创建 VPN 连接。
我能够成功创建 VPN 连接,但现在我想删除我的应用程序在系统偏好设置网络中创建的接口。
我尝试了下面的代码 运行 成功但它没有从网络列表中删除它
service = SCNetworkServiceCopy(prefs, (__bridge CFStringRef)(config.serviceID));
Boolean isDeleted = SCNetworkServiceRemove(service);
还有其他删除网络接口的方法吗?
下面的方法删除了界面,但我们需要保存所做的更改。
SCNetworkServiceCopy(prefs, (__bridge CFStringRef)(config.serviceID));
要保存设置,我们需要调用以下方法来保存我们在网络中所做的更改。
SCPreferencesApplyChanges(prefs);
NSString* serviceIDa = @"FB6AD34D-DF8B-4FEC-B715-6F76EA5E5D83";
SCNetworkServiceRef serviceDelete = SCNetworkServiceCopy(prefs, (__bridge CFStringRef)(serviceIDa));
BOOL commit = 0;
SCPreferencesLock(prefs, TRUE);
SCNetworkServiceCopy(prefs, (__bridge CFStringRef) (serviceIDa));
SCNetworkSetRef networkSetAll = SCNetworkSetCopyCurrent(prefs);
if(SCNetworkSetRemoveService(networkSetAll,serviceDelete)){
NSLog(@"Remove services ");
commit = 1;
}
//现在提交更改
SCPreferencesUnlock(prefs);
if (commit) {
SCPreferencesCommitChanges(prefs);
SCPreferencesApplyChanges(prefs);
}
CFRelease(networkSetAll);