ZBLOG

golang 设置windows系统代理

在 Golang 中设置 Windows 系统代理,可以通过以下代码实现:

  1. package main
  2. import (
  3. "golang.org/x/sys/windows/registry"
  4. )
  5. func setProxySettings(server string, port string) error {
  6. k, err := registry.OpenKey(registry.CURRENT_USER, `Software\Microsoft\Windows\CurrentVersion\Internet Settings`, registry.QUERY_VALUE|registry.SET_VALUE)
  7. if err != nil {
  8. return err
  9. }
  10. defer k.Close()
  11. if err = k.SetStringValue("AutoConfigURL", ""); err != nil {
  12. return err
  13. }
  14. if err = k.SetStringValue("ProxyEnable", "1"); err != nil {
  15. return err
  16. }
  17. proxyServer := server + ":" + port
  18. if err = k.SetStringValue("ProxyServer", proxyServer); err != nil {
  19. return err
  20. }
  21. if _, _, err = k.GetIntegerValue("ProxyOverride"); err == nil {
  22. if err = k.DeleteValue("ProxyOverride"); err != nil {
  23. return err
  24. }
  25. }
  26. return nil
  27. }
  28. func main() {
  29. // 调用设置代理函数,传入代理服务器地址和端口号参数
  30. setProxySettings("127.0.0.1", "8080")
  31. }

该代码与清除系统代理的代码类似,也是使用了 Go 的第三方库 golang.org/x/sys/windows/registry。在 setProxySettings() 函数中,我们打开了 Software\Microsoft\Windows\CurrentVersion\Internet Settings 这个注册表键,并设置了它的四个值:AutoConfigURL、ProxyEnable、ProxyServer 和 ProxyOverride。这四个值分别对应自动配置 URL、代理启用、代理服务器和代理忽略列表。

设置 ProxyEnable 为 1,表示启用代理。ProxyServer 的值为代理服务器的地址和端口号,例如 "127.0.0.1:8080"。如果需要设置代理认证信息,可以在地址后面加上用户名和密码,例如 "user:password@127.0.0.1:8080"

注意:修改系统代理可能会影响其他程序的网络连接,请谨慎使用。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6285

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?