[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"$f1cdwb7xju3l0n":3},"\u003Cp>﻿# 腾讯云自动化添加安全组\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#%E5%89%8D%E7%BD%AE%E9%A1%B9\">前置项\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#1-%E5%88%9B%E5%BB%BA%E5%8F%82%E6%95%B0%E6%A8%A1%E6%9D%BF-%E5%9C%A8%E5%AE%89%E5%85%A8%E7%BB%84%E4%B8%AD%E5%BC%95%E7%94%A8\">1. 创建参数模板，在安全组中引用\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#2-%E5%87%86%E5%A4%87%E4%BB%A3%E7%A0%81\">2. 准备代码\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#3-%E7%BC%96%E8%AF%91\">3. 编译\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#reference\">reference\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>一般登陆云服务器都限制来源 IP，添加白名单较为繁琐，通过接口可以快速添加。\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># .\u002FaddWhiteIP\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">{\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\"Response\"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">{\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">RequestId\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\":\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">c89ddf9df-738c-4f2a-9f02-dcd3cfe8c852\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\"}}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Outer IP : 106.224.145.147\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"前置项\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#前置项\">\u003Cspan>前置项\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>在腾讯云用户管理页面创建一个用于操作私有网络（VPC）的权限\u003C\u002Fp>\n\u003Cul>\n\u003Cli>访问方式：编程访问\u003C\u002Fli>\n\u003Cli>用户权限：\u003Ccode>QcloudVPCFullAccess\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002F16129597411766.jpg\" alt=\"-w1796\">\u003C\u002Fp>\n\u003Ch2 id=\"1-创建参数模板在安全组中引用\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#1-创建参数模板在安全组中引用\">\u003Cspan>1. 创建参数模板，在安全组中引用\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>直接用 API 频繁修改安全组存在风险，我们可以将\u003Ca href=\"https:\u002F\u002Fconsole.cloud.tencent.com\u002Fvpc\u002Ftpl\">参数模板\u003C\u002Fa>作为安全组中的一行。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002F16129604712653.jpg\" alt=\"w1758\">\u003C\u002Fp>\n\u003Cp>在\u003Ca href=\"https:\u002F\u002Fconsole.cloud.tencent.com\u002Fvpc\u002Fsecuritygroup\">安全组\u003C\u002Fa>中引用即可。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002F16129602811940.jpg\" alt=\"w1733\">\u003C\u002Fp>\n\u003Ch2 id=\"2-准备代码\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#2-准备代码\">\u003Cspan>2 准备代码\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>请参照 \u003Ca href=\"https:\u002F\u002Fconsole.cloud.tencent.com\u002Fapi\u002Fexplorer?Product=vpc&amp;Version=2017-03-12&amp;Action=ModifyAddressTemplateAttribute&amp;SignVersion=\">腾讯云的 API explorer\u003C\u002Fa> 生成对应的代码。\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-go\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">package\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\"> main\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> (\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">fmt\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">io\u002Fioutil\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">net\u002Fhttp\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">github.com\u002Ftencentcloud\u002Ftencentcloud-sdk-go\u002Ftencentcloud\u002Fcommon\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">github.com\u002Ftencentcloud\u002Ftencentcloud-sdk-go\u002Ftencentcloud\u002Fcommon\u002Ferrors\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">github.com\u002Ftencentcloud\u002Ftencentcloud-sdk-go\u002Ftencentcloud\u002Fcommon\u002Fprofile\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tvpc\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">github.com\u002Ftencentcloud\u002Ftencentcloud-sdk-go\u002Ftencentcloud\u002Fvpc\u002Fv20170312\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\u002F\u002F VPC 中添加 IP组的方式管理安全组\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">func\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tcredential\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> common\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">NewCredential\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;SecretId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\">  \u002F\u002F 请替换为你的腾讯云 SecretId\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;SecretKey>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 请替换为你的腾讯云 SecretKey\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tcpf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> profile\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">NewClientProfile\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tcpf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">HttpProfile\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Endpoint\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">vpc.tencentcloudapi.com\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tclient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> _\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> vpc\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">NewClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">credential\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;Region>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> cpf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 请替换为可用区ID，例如 ap-guangzhou\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> vpc\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">NewModifyAddressTemplateAttributeRequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">    \u002F\u002F 获取IPv4地址：https:\u002F\u002F4.wsmdn.dpdns.org\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\t\u002F\u002F 获取IPv6地址：https:\u002F\u002F6.wsmdn.dpdns.org\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tresponseClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> errClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> http\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Get\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">https:\u002F\u002F4.wsmdn.dpdns.org\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 获取外网 IP\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> errClient\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Printf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">获取外网 IP 失败，请检查网络\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">\t\tpanic\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">errClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\t\u002F\u002F 程序在使用完 response 后必须关闭 response 的主体。\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tdefer\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> responseClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Close\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tbody\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> _\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ioutil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ReadAll\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">responseClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tclientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> string\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tparams\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> fmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Sprintf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">{\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">AddressTemplateId\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;AddressTemplateId>\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">,\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Addresses\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">:[\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\\"%s\\\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">]}\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> clientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 请将 AddressTemplateId 替换为参数模板 ID\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\terr\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">FromJsonString\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">params\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">\t\tpanic\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tresponse\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> client\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ModifyAddressTemplateAttribute\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> _\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ok\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.(\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\">*\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\">errors\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\">TencentCloudSDKError\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">);\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ok\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Printf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">An API error has returned: \u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">%s\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\t\treturn\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">\t\tpanic\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Printf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">%s\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> response\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ToJsonString\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">())\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Printf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Outer IP : \u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">%s\\n\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> clientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"3-编译\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#3-编译\">\u003Cspan>3 编译\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># go build addWhiteIP.go\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># .\u002FaddWhiteIP\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">{\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\"Response\"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">{\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">RequestId\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\":\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ec9d18dc-cfcf-4f0b-a0c0-02a9c212dcxx\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\"}}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Outer IP : xx.xx.xx.xx\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"reference\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#reference\">\u003Cspan>reference\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>[1] TencentCloud. \u003Ca href=\"https:\u002F\u002Fconsole.cloud.tencent.com\u002Fapi\u002Fexplorer?Product=vpc&amp;Version=2017-03-12&amp;Action=ModifyAddressTemplateAttribute&amp;SignVersion=\">腾讯云安全组\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",1787918413301]