用代码为windows设置代理
windows10的代理是由两个注册表控制,分别是:
- CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable
- CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer
ProxyEnable是二进制类型,0表示关闭代理,1代表开启代理,ProxyServer则是字符串类型,如:127.0.0.1:10000.在代码中为windows开启代理,只需要操作这两个注册表即可
示例:使用golang为windows开启代理,golang操作注册表:golang.org/x/sys/windows/registry
// 设置代理
func SetProxyForWin(server string){
key, _, _ := registry.CreateKey(registry.CURRENT_USER, `SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings`, registry.ALL_ACCESS)
defer key.Close()
err := key.SetBinaryValue("ProxyEnable",IntToBytes(1))
if err != nil {
log.Fatal(err)
}
err = key.SetStringValue("ProxyServer", server)
if err != nil {
log.Fatal(err)
}
}
func IntToBytes(n int) []byte {
x := int32(n)
bytesBuffer := bytes.NewBuffer([]byte{})
binary.Write(bytesBuffer, binary.BigEndian, x)
return bytesBuffer.Bytes()
}