public string CheckAuth(string zoneId, string authEmail, string authKey) { string errorMessage = ""; string ip = "xxx.xxx.xxx.xxx"; //?page={1}&per_page={2}¬es=my note string url = "https://api.cloudflare.com/client/v4/zones/{0}/firewall/access_rules/rules?page=1&per_page=500&configuration.value={1}"; url = string.Format(url, zoneId, ip); //解密 var authKeyDecrypt = Utils.AesDecrypt(authKey); string content = HttpGet(authEmail, authKeyDecrypt, url); FirewallAccessRuleResponseList firewallAccessRuleResponseList = JsonConvert.DeserializeObject <FirewallAccessRuleResponseList>(content); if (firewallAccessRuleResponseList.success) { } else { if (firewallAccessRuleResponseList.errors.Any(a => a.message.Contains("Authentication error"))) { errorMessage = firewallAccessRuleResponseList.errors.FirstOrDefault()?.message; } } return(errorMessage); }
public List <FirewallAccessRule> GetAccessRuleList(string zoneId, string authEmail, string authKey, string ip, string notes) { List <FirewallAccessRule> firewallAccessRules = new List <FirewallAccessRule>(); int page = 1; while (true) { //?page={1}&per_page={2}¬es=my note string url = "https://api.cloudflare.com/client/v4/zones/{0}/firewall/access_rules/rules?page={1}&per_page=500&configuration.value={2}"; url = string.Format(url, zoneId, page, ip); if (!string.IsNullOrEmpty(notes)) { url = "https://api.cloudflare.com/client/v4/zones/{0}/firewall/access_rules/rules?page={1}&per_page=500¬es={2}"; url = string.Format(url, zoneId, page, notes); } //解密 var authKeyDecrypt = Utils.AesDecrypt(authKey); string content = HttpGet(authEmail, authKeyDecrypt, url, 1200); FirewallAccessRuleResponseList firewallAccessRuleResponseList = JsonConvert.DeserializeObject <FirewallAccessRuleResponseList>(content); if (firewallAccessRuleResponseList.success) { foreach (CreateResult result in firewallAccessRuleResponseList.result) { firewallAccessRules.Add(new FirewallAccessRule { id = result.id, notes = result.notes, mode = result.mode, configurationTarget = result.configuration.target, configurationValue = result.configuration.value, createTime = result.created_on, modifiedTime = result.modified_on, scopeId = result.scope.id, scopeEmail = result.scope.email, scopeType = result.scope.type, }); } if (firewallAccessRuleResponseList.result_info.page >= firewallAccessRuleResponseList.result_info.total_pages) { break; } else { page++; } } else { break; } } return(firewallAccessRules); }