how to set up a vpn connection programmatically in MAC?

不羁的心 提交于 2019-11-27 06:56:12

问题


after searching for a while i found that the only best source available to establish a vpn connection programmatically in mac is at

http://lists.apple.com/archives/Macnetworkprog/2011/May/msg00032.html

but i was struck at the 5th point while coding which says about kSCNetworkProtocolTypePPP and there is no such thing...

has anybody done it as shown in the above link or is there any other source available...?


回答1:


but i was struck at the 5th point while coding which says about kSCNetworkProtocolTypePPP and there is no such thing...

There is no need to fetch the PPP protocol, you can apply the settings directly to the interface you created. If you created the interface like this:

interface = SCNetworkInterfaceCreateWithInterface(bottomInterface, kSCNetworkInterfaceTypePPP);

you can apply the PPP options directly using:

SCNetworkInterfaceSetConfiguration(interface, myOptions)

You'll have to apply the shared secret using

SCNetworkInterfaceSetExtendedConfiguration(interface, CFSTR("IPSec"), myOptions)

And if you want to enable "Send all traffic over VPN", you'll need to apply those settings by fetching the IPv4 protocol first:

SCNetworkProtocolRef protocol = SCNetworkServiceCopyProtocol(service, kSCNetworkProtocolTypeIPv4);
SCNetworkProtocolSetConfiguration(protocol, myOptions)

The source code mentioned in this answer was extracted from https://github.com/halo/macosvpn/blob/master/macosvpn/Classes/VPNController.m where you can find it in its entirety.



来源:https://stackoverflow.com/questions/7022250/how-to-set-up-a-vpn-connection-programmatically-in-mac

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!