cloudcheck 8.6.1__cp313-cp313-musllinux_1_2_armv7l.whl → 8.7.1__cp313-cp313-musllinux_1_2_armv7l.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,17 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Baidu(BaseProvider):
6
+ v2fly_company: str = "baidu"
7
+ tags: List[str] = ["cdn"]
8
+ short_description: str = "Baidu Cloud Acceleration (百度云加速)"
9
+ long_description: str = "A Chinese content delivery network and cloud acceleration service provided by Baidu."
10
+ # {"org_id": "BUL-5-ARIN", "org_name": "Baidu USA LLC", "country": "US", "asns": [63288]}
11
+ # {"org_id": "ORG-BKL1-AP-APNIC", "org_name": "Baidu (Hong Kong) Limited", "country": "HK", "asns": [133746]}
12
+ # {"org_id": "ORG-BKL4-RIPE", "org_name": "Baidu (Hong Kong) Limited", "country": "HK", "asns": [199506]}
13
+ org_ids: List[str] = [
14
+ "BUL-5-ARIN",
15
+ "ORG-BKL1-AP-APNIC",
16
+ "ORG-BKL4-RIPE",
17
+ ]
@@ -79,14 +79,42 @@ class BaseProvider(BaseModel):
79
79
  def update_domains(self):
80
80
  # update dynamic domains
81
81
  errors = []
82
+ domains = set()
83
+
84
+ # fetch any dynamically-updated lists of domains
85
+ try:
86
+ dynamic_domains = self.fetch_domains()
87
+ print(f"Got {len(dynamic_domains)} dynamic domains for {self.name}")
88
+ domains.update(dynamic_domains)
89
+ except Exception as e:
90
+ errors.append(
91
+ f"Failed to fetch dynamic domains for {self.name}: {e}:\n{traceback.format_exc()}"
92
+ )
93
+
82
94
  if self.v2fly_company:
83
- domains, errors = self.fetch_v2fly_domains()
84
- if domains:
85
- self.domains = sorted(list(set(self.domains + domains)))
95
+ _domains, _errors = self.fetch_v2fly_domains()
96
+ if _domains:
97
+ domains.update(_domains)
86
98
  else:
87
99
  errors.append(
88
100
  f"No v2fly domains were found for {self.name} (company name: {self.v2fly_company})"
89
101
  )
102
+ errors.extend(_errors)
103
+
104
+ # finally, put in any manually-specified domains
105
+ print(f"Adding {len(self.domains)} manually-specified domains for {self.name}")
106
+ if self.domains:
107
+ domains.update(self.domains)
108
+
109
+ print(f"Total {len(domains)} domains for {self.name}")
110
+
111
+ try:
112
+ self.domains = self.validate_domains(domains)
113
+ except Exception as e:
114
+ errors.append(
115
+ f"Error validating domains for {self.name}: {e}:\n{traceback.format_exc()}"
116
+ )
117
+
90
118
  return errors
91
119
 
92
120
  def update_cidrs(self):
@@ -0,0 +1,14 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Cdnetworks(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "CDNetworks (씨디네트웍스)"
8
+ long_description: str = (
9
+ "A Korean content delivery network provider offering CDN and cloud services."
10
+ )
11
+ # {"org_id": "CDNET-ARIN", "org_name": "CDNetworks Inc.", "country": "US", "asns": [36408,40366]}
12
+ org_ids: List[str] = [
13
+ "CDNET-ARIN",
14
+ ]
@@ -0,0 +1,12 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Gabia(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Gabia (가비아)"
8
+ long_description: str = "A Korean cloud hosting and infrastructure provider."
9
+ # {"org_id": "@aut-17589-APNIC", "org_name": null, "country": null, "asns": [17589]}
10
+ org_ids: List[str] = [
11
+ "@aut-17589-APNIC",
12
+ ]
@@ -0,0 +1,27 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Gcore(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "G-Core Labs"
8
+ long_description: str = "A content delivery network and cloud infrastructure provider offering CDN, cloud computing, and edge services."
9
+ # {"org_id": "ORG-GLS1-AP-APNIC", "org_name": "G-Core Labs S.A", "country": "LU", "asns": [59245]}
10
+ # {"org_id": "ORG-WIG6-RIPE", "org_name": "G-Core Labs S.A.", "country": "LU", "asns": [199524,202422,210559]}
11
+ org_ids: List[str] = [
12
+ "ORG-GLS1-AP-APNIC",
13
+ "ORG-WIG6-RIPE",
14
+ ]
15
+
16
+ _ips_url = "https://api.gcore.com/cdn/public-ip-list"
17
+
18
+ def fetch_cidrs(self):
19
+ response = self.request(self._ips_url)
20
+ ranges = set()
21
+ if getattr(response, "status_code", 0) == 200:
22
+ response_json = response.json()
23
+ if isinstance(response_json, dict):
24
+ for key in "addresses", "addresses_v6":
25
+ for ip_range in response_json.get(key, []):
26
+ ranges.add(ip_range)
27
+ return list(ranges)
@@ -0,0 +1,17 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Gocache(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "GoCache"
8
+ long_description: str = "A Brazilian content delivery network provider offering CDN services."
9
+
10
+ _ips_url = "https://gocache.com.br/ips"
11
+
12
+ def fetch_cidrs(self):
13
+ response = self.request(self._ips_url)
14
+ ranges = set()
15
+ if getattr(response, "status_code", 0) == 200:
16
+ ranges.update(response.text.splitlines())
17
+ return list(ranges)
@@ -0,0 +1,13 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Hostway(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Hostway (호스트웨이)"
8
+ long_description: str = "A Korean cloud hosting and infrastructure provider."
9
+ # {"org_id": "@aut-9952-APNIC", "org_name": null, "country": null, "asns": [9952]}
10
+ # {"asn":9952,"asn_name":"HOSTWAY-AS-KR","org_id":"@aut-9952-APNIC"}
11
+ org_ids: List[str] = [
12
+ "@aut-9952-APNIC",
13
+ ]
@@ -0,0 +1,14 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Kinx(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "KINX (한국인터넷인프라)"
8
+ long_description: str = (
9
+ "A Korean content delivery network and cloud infrastructure provider."
10
+ )
11
+ # {"org_id": "@aut-9286-APNIC", "org_name": null, "country": null, "asns": [9286,9957,17604]}
12
+ org_ids: List[str] = [
13
+ "@aut-9286-APNIC",
14
+ ]
@@ -0,0 +1,14 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Ktcloud(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "KT Cloud (KT클라우드)"
8
+ long_description: str = (
9
+ "A Korean cloud computing service provided by KT Corporation."
10
+ )
11
+ # {"asn":9947,"asn_name":"KTC-AS-KR","country":null,"org":null,"org_id":"@aut-152232-APNIC","rir":null,"subnets":["61.100.71.0/24","61.100.72.0/24"]}
12
+ org_ids: List[str] = [
13
+ "@aut-152232-APNIC",
14
+ ]
@@ -0,0 +1,13 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Lgtelecom(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "LG U+ (LG유플러스)"
8
+ long_description: str = "A Korean telecommunications company offering CDN services."
9
+ # {"org_id": "@aut-17853-APNIC", "org_name": null, "country": null, "asns": [17853]}
10
+ # {"asn":17853,"asn_name":"LGTELECOM-AS-KR","org_id":"@aut-17853-APNIC"}
11
+ org_ids: List[str] = [
12
+ "@aut-17853-APNIC",
13
+ ]
@@ -0,0 +1,33 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Microsoft365(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Microsoft 365"
8
+ long_description: str = "A cloud-based productivity suite provided by Microsoft, including Office applications and cloud services."
9
+
10
+ _ips_url = "https://endpoints.office.com/endpoints/worldwide?clientrequestid=b10c5ed1-bad1-445f-b386-b919946339a7"
11
+
12
+ def fetch_cidrs(self):
13
+ response = self.request(self._ips_url)
14
+ ranges = set()
15
+ if getattr(response, "status_code", 0) == 200:
16
+ response_json = response.json()
17
+ if isinstance(response_json, list):
18
+ for item in response_json:
19
+ if isinstance(item, dict):
20
+ ranges.update(item.get("ips", []))
21
+ return list(ranges)
22
+
23
+ def fetch_domains(self):
24
+ response = self.request(self._ips_url)
25
+ domains = set()
26
+ if getattr(response, "status_code", 0) == 200:
27
+ response_json = response.json()
28
+ if isinstance(response_json, list):
29
+ for item in response_json:
30
+ if isinstance(item, dict):
31
+ for domain in item.get("urls", []):
32
+ domains.add(domain.strip("*."))
33
+ return list(domains)
@@ -0,0 +1,15 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Navercloud(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Naver Cloud Platform (네이버 클라우드 플랫폼)"
8
+ long_description: str = (
9
+ "A Korean cloud computing platform provided by Naver Corporation."
10
+ )
11
+ # "org_id": "@aut-23576-APNIC", "org_name": null, "country": null, "asns": [23576,23982]}
12
+ # {"asn":23576,"asn_name":"nhn-AS-KR","org_id":"@aut-23576-APNIC"}
13
+ org_ids: List[str] = [
14
+ "@aut-23576-APNIC",
15
+ ]
@@ -0,0 +1,15 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Nhncloud(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "NHN Cloud (NHN클라우드)"
8
+ long_description: str = (
9
+ "A Korean cloud computing platform provided by NHN Corporation."
10
+ )
11
+ # {"org_id": "@aut-10038-APNIC", "org_name": null, "country": null, "asns": [10038,45974,152291]}
12
+ # {"asn":45974,"asn_name":"NHN-AS-KR","org_id":"@aut-10038-APNIC"}
13
+ org_ids: List[str] = [
14
+ "@aut-10038-APNIC",
15
+ ]
@@ -0,0 +1,13 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Skbroadband(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "SK Broadband (SK브로드밴드)"
8
+ long_description: str = "A Korean telecommunications company offering CDN services."
9
+ # {"org_id": "@aut-10049-APNIC", "org_name": null, "country": null, "asns": [9705,10049]}
10
+ # {"asn":10049,"asn_name":"SKNET-AS","country":null,"org":null,"org_id":"@aut-10049-APNIC"}
11
+ org_ids: List[str] = [
12
+ "@aut-10049-APNIC",
13
+ ]
@@ -5,7 +5,7 @@ from typing import List
5
5
  class Tencent(BaseProvider):
6
6
  v2fly_company: str = "tencent"
7
7
  tags: List[str] = ["cloud"]
8
- short_description: str = "Tencent Cloud"
8
+ short_description: str = "Tencent Cloud (腾讯云)"
9
9
  long_description: str = "A Chinese cloud computing service provider and subsidiary of Tencent, offering cloud infrastructure and platform services."
10
10
  # {"org_id": "ORG-STCS1-AP-APNIC", "org_name": "Shenzhen Tencent Computer Systems Company Limited", "country": "CN", "asns": [132203,132591]}
11
11
  # {"org_id": "ORG-TCCC1-AP-APNIC", "org_name": "Tencent Cloud Computing (Beijing) Co., Ltd", "country": "CN", "asns": [133478]}
@@ -0,0 +1,25 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Zscaler(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Zscaler"
8
+ long_description: str = "A cloud security company providing secure internet access, cloud security, and zero trust network access services."
9
+
10
+ _ips_url = "https://api.config.zscaler.com/zscaler.net/cenr/json"
11
+
12
+ def fetch_cidrs(self):
13
+ response = self.request(self._ips_url)
14
+ ranges = set()
15
+ if getattr(response, "status_code", 0) == 200:
16
+ response_json = response.json()
17
+ if isinstance(response_json, dict):
18
+ for domain, data in response_json.items():
19
+ for continent, cities in data.items():
20
+ for city, ranges_list in cities.items():
21
+ for range_data in ranges_list:
22
+ range_str = range_data.get("range")
23
+ if range_str:
24
+ ranges.add(range_str)
25
+ return list(ranges)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudcheck
3
- Version: 8.6.1
3
+ Version: 8.7.1
4
4
  Summary: Detailed database of cloud providers. Instantly look up a domain or IP address
5
5
  Requires-Python: >=3.9
6
6
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
@@ -16,6 +16,9 @@ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
16
16
  [![Rust Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/rust-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/rust-tests.yml)
17
17
  [![Python Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/python-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/python-tests.yml)
18
18
  [![Pipeline Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/pipeline-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/pipeline-tests.yml)
19
+ [![Docker Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/docker-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/docker-tests.yml)
20
+
21
+ ### UPDATE 01-2026: Now supports REST API!
19
22
 
20
23
  ### UPDATE 12-2025: Now supports government agencies (DoD, FBI, UK MoD, RU FSO)!
21
24
 
@@ -39,24 +42,43 @@ Used by [BBOT](https://github.com/blacklanternsecurity/bbot) and [BBOT Server](h
39
42
  # installation
40
43
  cargo install cloudcheck
41
44
 
42
- # usage
43
- cloudcheck 8.8.8.8
45
+ # lookup command
46
+ cloudcheck lookup 8.8.8.8
44
47
  # output:
45
- {
46
- "name": "Google",
47
- "tags": [
48
- "cloud"
49
- ]
50
- }
51
-
52
- cloudcheck asdf.amazon.com
48
+ [
49
+ {
50
+ "name": "Google",
51
+ "tags": ["cloud"],
52
+ "short_description": "A suite of cloud computing services provided by Google",
53
+ "long_description": "Google Cloud Platform provides infrastructure, platform, and software services for businesses and developers"
54
+ }
55
+ ]
56
+
57
+ cloudcheck lookup asdf.amazon.com
53
58
  # output:
54
- {
55
- "name": "Amazon",
56
- "tags": [
57
- "cloud"
58
- ]
59
- }
59
+ [
60
+ {
61
+ "name": "Amazon",
62
+ "tags": ["cloud"],
63
+ "short_description": "A comprehensive cloud computing platform provided by Amazon",
64
+ "long_description": "Amazon Web Services offers infrastructure services, storage, and computing power"
65
+ }
66
+ ]
67
+
68
+ # serve command - start REST API server
69
+ cloudcheck serve
70
+ # Server listening on http://127.0.0.1:8080
71
+ # Swagger UI available at http://127.0.0.1:8080/swagger-ui
72
+ # OpenAPI spec available at http://127.0.0.1:8080/api-docs/openapi.json
73
+
74
+ # serve with custom host and port
75
+ cloudcheck serve --host 0.0.0.0 --port 3000
76
+ ```
77
+
78
+ ## REST API
79
+
80
+ ```bash
81
+ curl http://127.0.0.1:8080/lookup/8.8.8.8
60
82
  ```
61
83
 
62
84
  ## Python Library Usage
@@ -127,7 +149,7 @@ When adding a new cloud provider:
127
149
  In addition to the above attributes, if you have a custom source of CIDRs or domains, you can override the `fetch_cidrs()` or `fetch_domains()` methods (which by default return an empty list) to go fetch your custom TXT/JSON file, etc.
128
150
 
129
151
  <!--PROVIDERTABLE-->
130
- ## Cloud Providers (41)
152
+ ## Cloud Providers (55)
131
153
 
132
154
  | Name | Description | Tags | Domains | Subnets |
133
155
  |------|-------------|------|---------|----------|
@@ -136,7 +158,9 @@ When adding a new cloud provider:
136
158
  | Amazon Web Services | A comprehensive cloud computing platform provided by Amazon, offering infrastructure services, storage, and computing power. | cloud | 231 | 14090 |
137
159
  | Arvancloud | An Iranian cloud computing and content delivery network provider offering cloud infrastructure and CDN services. | cdn | 1 | 20 |
138
160
  | Backblaze | A cloud storage and backup service provider offering data backup and cloud storage solutions. | cloud | 2 | 26 |
161
+ | Baidu Cloud Acceleration (百度云加速) | A Chinese content delivery network and cloud acceleration service provided by Baidu. | cdn | 134 | 0 |
139
162
  | CacheFly | A content delivery network provider offering global CDN services. | cdn | 0 | 23 |
163
+ | CDNetworks (씨디네트웍스) | A Korean content delivery network provider offering CDN and cloud services. | cdn | 0 | 3 |
140
164
  | Cisco | A multinational technology corporation that designs, manufactures, and sells networking hardware, software, and telecommunications equipment. | cloud | 121 | 629 |
141
165
  | Cloudflare | A web infrastructure and security company providing content delivery network services, DDoS mitigation, and web security solutions. | cdn | 60 | 2674 |
142
166
  | Amazon CloudFront | A content delivery network service provided by Amazon Web Services that delivers data, videos, applications, and APIs to customers globally. | cdn | 0 | 172 |
@@ -146,17 +170,27 @@ When adding a new cloud provider:
146
170
  | Department of Defense | A U.S. government agency responsible for coordinating and supervising all agencies and functions of the government directly related to national security and the United States Armed Forces. | gov | 3 | 9226 |
147
171
  | Federal Bureau of Investigation | A U.S. government agency that serves as the domestic intelligence and security service, responsible for investigating federal crimes and protecting national security. | gov | 3 | 21 |
148
172
  | Fastly | A content delivery network and edge cloud platform that provides edge computing, security, and performance services. | cdn | 8 | 1026 |
173
+ | Gabia (가비아) | A Korean cloud hosting and infrastructure provider. | cloud | 0 | 48 |
174
+ | G-Core Labs | A content delivery network and cloud infrastructure provider offering CDN, cloud computing, and edge services. | cdn | 0 | 1405 |
149
175
  | GitHub | A web-based platform for version control and collaboration using Git, providing hosting for software development and code repositories. | cdn | 33 | 4277 |
176
+ | GoCache | A Brazilian content delivery network provider offering CDN services. | cdn | 0 | 28 |
150
177
  | Google Cloud | A suite of cloud computing services provided by Google, including infrastructure, platform, and software services for businesses and developers. | cloud | 1095 | 1863 |
151
178
  | Hewlett Packard Enterprise | A multinational enterprise information technology company that provides servers, storage, networking, and cloud services. | cloud | 16 | 38 |
152
179
  | Heroku | A cloud platform as a service that enables developers to build, run, and operate applications entirely in the cloud. | cloud | 12 | 0 |
153
180
  | Hetzner | A German cloud hosting provider offering dedicated servers, cloud instances, and storage solutions. | cloud | 14 | 126 |
181
+ | Hostway (호스트웨이) | A Korean cloud hosting and infrastructure provider. | cloud | 0 | 59 |
154
182
  | Huawei | A Chinese multinational technology corporation that designs, develops, and sells telecommunications equipment, consumer electronics, and cloud services. | cloud | 338 | 270 |
155
183
  | IBM | A multinational technology corporation that provides hardware, software, cloud computing, and consulting services. | cloud | 20 | 394 |
156
184
  | Imperva | A cybersecurity company that provides web application firewall, DDoS protection, and data security solutions. | waf | 1 | 23 |
157
185
  | Kamatera | A cloud infrastructure provider offering virtual private servers, cloud servers, and managed cloud services. | cloud | 1 | 163 |
186
+ | KINX (한국인터넷인프라) | A Korean content delivery network and cloud infrastructure provider. | cdn | 0 | 136 |
187
+ | KT Cloud (KT클라우드) | A Korean cloud computing service provided by KT Corporation. | cloud | 0 | 8 |
158
188
  | Leaseweb | A global hosting and cloud infrastructure provider offering dedicated servers, cloud hosting, and CDN services. | cloud | 0 | 1487 |
189
+ | LG U+ (LG유플러스) | A Korean telecommunications company offering CDN services. | cdn | 0 | 168 |
159
190
  | Microsoft | A multinational technology corporation that develops, manufactures, licenses, supports and sells computer software, consumer electronics and personal computers. Known for products like Windows, Office, Azure cloud services, and Xbox. | cloud | 689 | 2452 |
191
+ | Microsoft 365 | A cloud-based productivity suite provided by Microsoft, including Office applications and cloud services. | cloud | 0 | 82 |
192
+ | Naver Cloud Platform (네이버 클라우드 플랫폼) | A Korean cloud computing platform provided by Naver Corporation. | cloud | 0 | 73 |
193
+ | NHN Cloud (NHN클라우드) | A Korean cloud computing platform provided by NHN Corporation. | cloud | 0 | 122 |
160
194
  | OVHcloud | A French cloud computing company that provides web hosting, dedicated servers, and cloud infrastructure services. | cloud | 3 | 517 |
161
195
  | Oracle | A multinational technology corporation that provides database software, cloud engineering systems, and enterprise software products. | cloud | 18 | 2329 |
162
196
  | Qrator | A DDoS protection and content delivery network service provider. | cdn | 0 | 19 |
@@ -165,6 +199,7 @@ When adding a new cloud provider:
165
199
  | Rackspace | A managed cloud computing company that provides hosting, cloud services, and managed infrastructure solutions. | cloud | 1 | 199 |
166
200
  | Salesforce | A cloud-based software company that provides customer relationship management services and enterprise cloud computing solutions. | cloud | 39 | 48 |
167
201
  | Scaleway | A French cloud computing company that provides virtual private servers, bare metal servers, and cloud infrastructure services. | cloud | 1 | 40 |
202
+ | SK Broadband (SK브로드밴드) | A Korean telecommunications company offering CDN services. | cdn | 0 | 22 |
168
203
  | StormWall | A DDoS protection and web application firewall service provider. | cdn | 0 | 20 |
169
204
  | Sucuri | A website security and web application firewall service provider. | waf | 0 | 16 |
170
205
  | Tencent Cloud | A Chinese cloud computing service provider and subsidiary of Tencent, offering cloud infrastructure and platform services. | cloud | 580 | 368 |
@@ -172,4 +207,45 @@ When adding a new cloud provider:
172
207
  | Wasabi | A cloud storage provider offering hot cloud storage services with high performance and low cost. | cloud | 1 | 20 |
173
208
  | X4B | A DDoS protection and content delivery network service provider. | cdn | 0 | 3 |
174
209
  | Zoho | An Indian software company that provides cloud-based business software and productivity tools including CRM, email, and office suites. | cloud | 13 | 91 |
210
+ | Zscaler | A cloud security company providing secure internet access, cloud security, and zero trust network access services. | cloud | 0 | 247 |
175
211
  <!--ENDPROVIDERTABLE-->
212
+
213
+ ## Development
214
+
215
+ ### Python
216
+
217
+ #### Setup
218
+ ```bash
219
+ uv sync
220
+ uv run maturin develop --release
221
+ ```
222
+
223
+ #### Running Tests
224
+ ```bash
225
+ # python tests
226
+ uv run pytest test_cloudcheck.py -v
227
+
228
+ # docker tests
229
+ python test_docker.py
230
+ ```
231
+
232
+ #### Linting
233
+ ```bash
234
+ # Check for linting issues
235
+ uv run ruff check && uv run ruff format .
236
+ ```
237
+
238
+ ### Rust
239
+
240
+ #### Running Tests
241
+ ```bash
242
+ cargo test --verbose --all-features
243
+ ```
244
+
245
+ #### Formatting
246
+ ```bash
247
+ cargo fmt --all
248
+
249
+ cargo clippy --all-targets --all-features -- -D warnings
250
+ ```
251
+
@@ -1,8 +1,5 @@
1
- cloudcheck-8.6.1.dist-info/METADATA,sha256=aG_IZP-BGxR_mANtf7j_jJC_l9ObGTfOSFPi6Nr5XQ0,12153
2
- cloudcheck-8.6.1.dist-info/WHEEL,sha256=qGBlEHaOgfAagguPug1z7vImco5O0dK7-1J1I6fWMsM,108
3
- cloudcheck.libs/libgcc_s-262c4f60.so.1,sha256=xPsZgCvL7EO-llmjqc5bm96baehLsO4avBqUhih0xZg,2810501
4
1
  cloudcheck/__init__.py,sha256=Bhl6yAlOs8SFIL9Qw-EX8QGeHWeKfo7_IyXOeAefMgU,61
5
- cloudcheck/cloudcheck.cpython-313-arm-linux-musleabihf.so,sha256=ipRy0AgtRZlknX7PQcqZT2BIf2refIGfaj13GhDAhaM,8413125
2
+ cloudcheck/cloudcheck.cpython-313-arm-linux-musleabihf.so,sha256=aS98fUE_EqeBtiFPX1w3js8Z5aKfBJ7LmFznlyq91EI,8654789
6
3
  cloudcheck/helpers.py,sha256=WQElEwBVpClsdDPXtA8ru-z4g2xubw1-0MpIvslSHvU,7635
7
4
  cloudcheck/providers/__init__.py,sha256=CeokJETwsKYZUlArE723UTPtize7OJ799YLPcyIv3z0,1651
8
5
  cloudcheck/providers/akamai.py,sha256=Czph3Sfo0uq6YCMDpi6WVZf9qJV3bZcmLenonrxnVMk,1822
@@ -10,8 +7,10 @@ cloudcheck/providers/alibaba.py,sha256=kN_HgkfmeVZGMxo-bOHthObdokWx-R-0K7OFmQ4iS
10
7
  cloudcheck/providers/amazon.py,sha256=5r8psEU4PJPa7PpPFi2B2X5MWAD1Bdi9jOyybElaYOc,1845
11
8
  cloudcheck/providers/arvancloud.py,sha256=PeFy02lcOdWE8fWv3eq11al3e0ZaQ6FPSQffPWqL_eI,851
12
9
  cloudcheck/providers/backblaze.py,sha256=xX6kxi2oLj-VCtMGQkbXRU7bYkT-wYkE-M-_c6BqReA,527
13
- cloudcheck/providers/base.py,sha256=-AEaV3AU4Nqsvj_UKGDaP0TWn6gOKD2P5S0oAgwGWEc,10292
10
+ cloudcheck/providers/baidu.py,sha256=66U_AEbTUeJZhuDJ3J_qr_JTpMHszn2CkUsMf9NRqqQ,783
11
+ cloudcheck/providers/base.py,sha256=lmxSGWnVanF7SWbSxnVxE4VZMeEtPBegz94FnVIbpiU,11254
14
12
  cloudcheck/providers/cachefly.py,sha256=YCq4EyUOiMpkdi_d16I8398Il3JI-FTtDv1g3LcWHVE,860
13
+ cloudcheck/providers/cdnetworks.py,sha256=tZWlPWUZEqZKud8MGv364ZuedyVPWJJjzslI3OgqsDg,481
15
14
  cloudcheck/providers/cisco.py,sha256=IaJIpyor35pq0TZP2S0tMVBF3yjJ-nebwNak-nVhXQ0,2434
16
15
  cloudcheck/providers/cloudflare.py,sha256=G0fxIIGB_sz8Dzg8G4XFU3HjRZl0kpekL37Gf8AUBgE,1984
17
16
  cloudcheck/providers/cloudfront.py,sha256=4_4D8GJPtATaNZyYxTIGVSGwSuC8OJLiNHy1e2NA9yk,804
@@ -21,17 +20,27 @@ cloudcheck/providers/digitalocean.py,sha256=lZsSB2lXr0ggw_exdPb9PLazhcgs-Q2nh6tv
21
20
  cloudcheck/providers/dod.py,sha256=WTA1AGNBVFfJ7TousuUtpl5R-b-lKT9CI7oJZX54q7g,1358
22
21
  cloudcheck/providers/fastly.py,sha256=0SZBmthVvh11Jdkc9xZgHQ6XMTPoPxFm1niK3HDHyeY,881
23
22
  cloudcheck/providers/fbi.py,sha256=SFWfi9Ll9vQYlEpZX7uGXO6GrZZJWYmehiZ1IXKMrr0,633
23
+ cloudcheck/providers/gabia.py,sha256=bP4fIiuQdh1yzdwO8_aNkbuGIwdKVjYQcxmWBLFTV4s,417
24
+ cloudcheck/providers/gcore.py,sha256=QuJ_UworZYbcdi_HKUB_x7bMy1SlsufiImOVZcTWQ1M,1120
24
25
  cloudcheck/providers/github.py,sha256=h-ESNNl1tQXSO8q_HswME4x8h-Qu9O-h7d4Z7FpyUOI,1036
26
+ cloudcheck/providers/gocache.py,sha256=blnXP4e_X-bBhp1DpeJrmugFLxb4Lo1WDlXQmRSwgE8,554
25
27
  cloudcheck/providers/google.py,sha256=KkkQEFwXN8xTxy4h7t1O8JNBcVIJx6UXMYw4n-ZU21Q,3427
26
28
  cloudcheck/providers/heroku.py,sha256=0bRaIP44hWOwEqlHJ9U_vf8I0sAYTy5DRl0gKgg-HIY,356
27
29
  cloudcheck/providers/hetzner.py,sha256=MT-d0ylPVcqeHZOBMrO69SF7zaHvYj7MuRaiOhs_U24,810
30
+ cloudcheck/providers/hostway.py,sha256=R1zFZ9pZYmgMVJl6dHTINRNSevj33JK1jarcMhRO_VM,497
28
31
  cloudcheck/providers/hpe.py,sha256=aiZQK2KzHpG00AFHp6InYVxnRxNYfmcAu_TnRPFqNBo,726
29
32
  cloudcheck/providers/huawei.py,sha256=w8996PLDGATXwEZUTGdvygyNAPG4d4lLbgW6WRmzR8M,1024
30
33
  cloudcheck/providers/ibm.py,sha256=WqSe6G5KinmUDrUkJRUehcrd_diFexcNKmDsvt2vN-k,3776
31
34
  cloudcheck/providers/imperva.py,sha256=oQWCCYJ_A7d2aSl2zjyJkmZtq2N4BGTTfsSW2LD-1xk,1008
32
35
  cloudcheck/providers/kamatera.py,sha256=QfjvU3vkQW10BBYtk2kOOZKQ0K7r6Oa5o6e2GKt2Ee8,816
36
+ cloudcheck/providers/kinx.py,sha256=QPc8Y2JE92hmHBZcISzsu2LaMHjFUymifXpVIJ_6MOw,469
37
+ cloudcheck/providers/ktcloud.py,sha256=3nLHtovucQ1vRfuUyEQ3iM1m80QvoHFS5ufgC5tfpIc,518
33
38
  cloudcheck/providers/leaseweb.py,sha256=aNMq2Z0JkQBJSs7_YGZPsiJShjEmkGxgMVaKZjkBmII,1921
39
+ cloudcheck/providers/lgtelecom.py,sha256=kZn_uOHYk2DJqh560hxzSlYP2FBcz1Y4CnagM7BzPXo,508
34
40
  cloudcheck/providers/microsoft.py,sha256=MHxeRtUs43aIVUECnsFTZdwcbZ55NG4DlfC-KERmqDI,2302
41
+ cloudcheck/providers/microsoft365.py,sha256=zfZSbx52sbI_9pHSt12Alu_xKn_JB7cSyCLGB08MfcE,1353
42
+ cloudcheck/providers/navercloud.py,sha256=yJvOic5Hnmz2HpBzeKUuSn0yLOJoTzY6lDBoW1pDaxs,565
43
+ cloudcheck/providers/nhncloud.py,sha256=apqUzF8PMzPte6bZAc4sGBYnUOuF61SBMRI5ZZ1jvwo,541
35
44
  cloudcheck/providers/oracle.py,sha256=1O0_phByV3t_0cfZsD4mdl5_RlYHbaIlQUtCNX5tKgI,1921
36
45
  cloudcheck/providers/ovh.py,sha256=i-GM5bDhHzxHabCoqkmZyp4OSHkSUwdBCmsHLJWULcU,562
37
46
  cloudcheck/providers/qrator.py,sha256=5Pnt7oIiRXXgUlJKn2IeBH_sz2JHpIso5Xe5IZ5P6xo,593
@@ -40,11 +49,16 @@ cloudcheck/providers/rackspace.py,sha256=je_1Ds25Hd70hbsbJP_Ex56n1cX1_3fGPazW_2L
40
49
  cloudcheck/providers/ru_fso.py,sha256=Uok9sD4EeWiBZbaTSKB5EGgAM9byWc0d4GSt_UBvk-g,467
41
50
  cloudcheck/providers/salesforce.py,sha256=N-BOrUpIyf62zsMGaK2J-WsLFYyT9MO6uCclP02Snjw,851
42
51
  cloudcheck/providers/scaleway.py,sha256=EmS-MobNspdoqHsZQvxgl6j__yXXj7elKet44WcuTx4,689
52
+ cloudcheck/providers/skbroadband.py,sha256=N8drXa_784lVmXxj6BlPLKQ1FLvviG3cWrHkYzm7LRA,544
43
53
  cloudcheck/providers/stormwall.py,sha256=PyUsMxJeK0lJMjD-OwA3-N5LBWxuZaNjVKqAislVl3E,456
44
54
  cloudcheck/providers/sucuri.py,sha256=LTGNb9f5esF617JnXuT3SyoT0lEAzdK55W8nXwCi_vA,431
45
- cloudcheck/providers/tencent.py,sha256=2-_JLF2mmraTRKydIqufkcbY8cSmQUglrXbOh8G4yAo,896
55
+ cloudcheck/providers/tencent.py,sha256=Q4yHQDGMa1CdcTR2MvEgqOuDeJqAU4gwVdaKLtzPxnA,908
46
56
  cloudcheck/providers/uk_mod.py,sha256=UEoeQmDiw2tJfOtCEe-e6TWkdCUpUa-rouNZkp0GDSY,524
47
57
  cloudcheck/providers/wasabi.py,sha256=MJ1c46qauijwJR8Q1pxk2D4QZ1MXaYR4QHA7tNmGn6U,665
48
58
  cloudcheck/providers/x4b.py,sha256=btHtR8QMpAlN9qbK6w6yOTMxeRNIswovmH-VesYxNSI,430
49
59
  cloudcheck/providers/zoho.py,sha256=bo_bhd1OP3n_66abQmjIexYiuNQFAQe8VHyJONyv5so,1498
50
- cloudcheck-8.6.1.dist-info/RECORD,,
60
+ cloudcheck/providers/zscaler.py,sha256=jW6W7GcFdeCd1X9M7QH9ChoVSLxK7rJfT9N8bd8arhY,1080
61
+ cloudcheck-8.7.1.dist-info/METADATA,sha256=67Ul4GOmt4x2GeNaVHGZ52sZnrFD4C8AovOTRqKG0_A,15444
62
+ cloudcheck-8.7.1.dist-info/WHEEL,sha256=wMYMTUJDVeLsNwWLd3HbfPfwLHicHwmMaHeaf4bFLf8,108
63
+ cloudcheck.libs/libgcc_s-262c4f60.so.1,sha256=xPsZgCvL7EO-llmjqc5bm96baehLsO4avBqUhih0xZg,2810501
64
+ cloudcheck-8.7.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.10.2)
2
+ Generator: maturin (1.11.5)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-musllinux_1_2_armv7l