cloudcheck 8.7.2__cp314-cp314t-musllinux_1_2_aarch64.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.
Files changed (65) hide show
  1. cloudcheck/__init__.py +3 -0
  2. cloudcheck/cloudcheck.cpython-314t-aarch64-linux-musl.so +0 -0
  3. cloudcheck/helpers.py +251 -0
  4. cloudcheck/providers/__init__.py +51 -0
  5. cloudcheck/providers/akamai.py +35 -0
  6. cloudcheck/providers/alibaba.py +13 -0
  7. cloudcheck/providers/amazon.py +39 -0
  8. cloudcheck/providers/arvancloud.py +22 -0
  9. cloudcheck/providers/backblaze.py +13 -0
  10. cloudcheck/providers/baidu.py +17 -0
  11. cloudcheck/providers/base.py +317 -0
  12. cloudcheck/providers/cachefly.py +26 -0
  13. cloudcheck/providers/cdnetworks.py +14 -0
  14. cloudcheck/providers/cisco.py +41 -0
  15. cloudcheck/providers/cloudflare.py +42 -0
  16. cloudcheck/providers/cloudfront.py +20 -0
  17. cloudcheck/providers/ddosguard.py +14 -0
  18. cloudcheck/providers/dell.py +13 -0
  19. cloudcheck/providers/digitalocean.py +32 -0
  20. cloudcheck/providers/dod.py +31 -0
  21. cloudcheck/providers/fastly.py +24 -0
  22. cloudcheck/providers/fbi.py +18 -0
  23. cloudcheck/providers/gabia.py +12 -0
  24. cloudcheck/providers/gcore.py +27 -0
  25. cloudcheck/providers/github.py +30 -0
  26. cloudcheck/providers/gocache.py +17 -0
  27. cloudcheck/providers/google.py +63 -0
  28. cloudcheck/providers/heroku.py +9 -0
  29. cloudcheck/providers/hetzner.py +20 -0
  30. cloudcheck/providers/hostway.py +13 -0
  31. cloudcheck/providers/hpe.py +14 -0
  32. cloudcheck/providers/huawei.py +19 -0
  33. cloudcheck/providers/ibm.py +59 -0
  34. cloudcheck/providers/imperva.py +27 -0
  35. cloudcheck/providers/kamatera.py +19 -0
  36. cloudcheck/providers/kinx.py +14 -0
  37. cloudcheck/providers/ktcloud.py +14 -0
  38. cloudcheck/providers/leaseweb.py +32 -0
  39. cloudcheck/providers/lgtelecom.py +13 -0
  40. cloudcheck/providers/microsoft.py +39 -0
  41. cloudcheck/providers/microsoft365.py +33 -0
  42. cloudcheck/providers/navercloud.py +15 -0
  43. cloudcheck/providers/nhncloud.py +15 -0
  44. cloudcheck/providers/oracle.py +33 -0
  45. cloudcheck/providers/ovh.py +17 -0
  46. cloudcheck/providers/qrator.py +16 -0
  47. cloudcheck/providers/quiccloud.py +38 -0
  48. cloudcheck/providers/rackspace.py +23 -0
  49. cloudcheck/providers/ru_fso.py +13 -0
  50. cloudcheck/providers/salesforce.py +17 -0
  51. cloudcheck/providers/scaleway.py +17 -0
  52. cloudcheck/providers/skbroadband.py +13 -0
  53. cloudcheck/providers/stormwall.py +14 -0
  54. cloudcheck/providers/sucuri.py +14 -0
  55. cloudcheck/providers/tencent.py +17 -0
  56. cloudcheck/providers/uk_mod.py +16 -0
  57. cloudcheck/providers/wasabi.py +17 -0
  58. cloudcheck/providers/x4b.py +14 -0
  59. cloudcheck/providers/yandex.py +107 -0
  60. cloudcheck/providers/zoho.py +27 -0
  61. cloudcheck/providers/zscaler.py +25 -0
  62. cloudcheck-8.7.2.dist-info/METADATA +252 -0
  63. cloudcheck-8.7.2.dist-info/RECORD +65 -0
  64. cloudcheck-8.7.2.dist-info/WHEEL +4 -0
  65. cloudcheck.libs/libgcc_s-39080030.so.1 +0 -0
@@ -0,0 +1,13 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class RUFSO(BaseProvider):
6
+ """Russian Federal Security Service"""
7
+
8
+ tags: List[str] = ["gov"]
9
+ short_description: str = "Russian Federal Security Service"
10
+ long_description: str = "A Russian federal executive body responsible for counterintelligence, internal and border security, counterterrorism, and surveillance."
11
+ org_ids: List[str] = [
12
+ "ORG-TFGS1-RIPE",
13
+ ]
@@ -0,0 +1,17 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Salesforce(BaseProvider):
6
+ v2fly_company: str = "salesforce"
7
+ tags: List[str] = ["cloud"]
8
+ short_description: str = "Salesforce"
9
+ long_description: str = "A cloud-based software company that provides customer relationship management services and enterprise cloud computing solutions."
10
+ # {"org_id": "ORG-SI12-AP-APNIC", "org_name": "SalesForce.com, Inc.", "country": "US", "asns": [45422,133869,133942]}
11
+ # {"org_id": "SALES-44-ARIN", "org_name": "Salesforce, Inc.", "country": "US", "asns": [393517,396417]}
12
+ # {"org_id": "SALESF-3-ARIN", "org_name": "Salesforce.com, Inc.", "country": "US", "asns": [14340,22606,32542,32870,394808]}
13
+ org_ids: List[str] = [
14
+ "ORG-SI12-AP-APNIC",
15
+ "SALES-44-ARIN",
16
+ "SALESF-3-ARIN",
17
+ ]
@@ -0,0 +1,17 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Scaleway(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Scaleway"
8
+ long_description: str = "A French cloud computing company that provides virtual private servers, bare metal servers, and cloud infrastructure services."
9
+ # {"org_id": "ORG-TT1-RIPE", "org_name": "SCALEWAY S.A.S.", "country": "FR", "asns": [12876,29447,202023]}
10
+ # {"org_id": "SUC-48-ARIN", "org_name": "SCALEWAY US CORPORATION", "country": "US", "asns": [54265]}
11
+ org_ids: List[str] = [
12
+ "ORG-TT1-RIPE",
13
+ "SUC-48-ARIN",
14
+ ]
15
+ domains: List[str] = [
16
+ "scaleway.com",
17
+ ]
@@ -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
+ ]
@@ -0,0 +1,14 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Stormwall(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "StormWall"
8
+ long_description: str = (
9
+ "A DDoS protection and web application firewall service provider."
10
+ )
11
+ # {"org_id": "ORG-SS933-RIPE", "org_name": "StormWall s.r.o.", "country": "SK", "asns": [51558,59796]}
12
+ org_ids: List[str] = [
13
+ "ORG-SS933-RIPE",
14
+ ]
@@ -0,0 +1,14 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Sucuri(BaseProvider):
6
+ tags: List[str] = ["waf"]
7
+ short_description: str = "Sucuri"
8
+ long_description: str = (
9
+ "A website security and web application firewall service provider."
10
+ )
11
+ # {"org_id": "SUCUR-2-ARIN", "org_name": "Sucuri", "country": "US", "asns": [30148]}
12
+ org_ids: List[str] = [
13
+ "SUCUR-2-ARIN",
14
+ ]
@@ -0,0 +1,17 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Tencent(BaseProvider):
6
+ v2fly_company: str = "tencent"
7
+ tags: List[str] = ["cloud"]
8
+ short_description: str = "Tencent Cloud (腾讯云)"
9
+ long_description: str = "A Chinese cloud computing service provider and subsidiary of Tencent, offering cloud infrastructure and platform services."
10
+ # {"org_id": "ORG-STCS1-AP-APNIC", "org_name": "Shenzhen Tencent Computer Systems Company Limited", "country": "CN", "asns": [132203,132591]}
11
+ # {"org_id": "ORG-TCCC1-AP-APNIC", "org_name": "Tencent Cloud Computing (Beijing) Co., Ltd", "country": "CN", "asns": [133478]}
12
+ # {"org_id": "ORG-TCL14-AP-APNIC", "org_name": "Tencent (Thailand) Company Limited", "country": "TH", "asns": [137876]}
13
+ org_ids: List[str] = [
14
+ "ORG-STCS1-AP-APNIC",
15
+ "ORG-TCCC1-AP-APNIC",
16
+ "ORG-TCL14-AP-APNIC",
17
+ ]
@@ -0,0 +1,16 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class UKMoD(BaseProvider):
6
+ """United Kingdom Ministry of Defense"""
7
+
8
+ tags: List[str] = ["gov"]
9
+ short_description: str = "United Kingdom Ministry of Defence"
10
+ long_description: str = "A U.K. government department responsible for implementing the defence policy of the United Kingdom and managing the British Armed Forces."
11
+ org_ids: List[str] = [
12
+ "ORG-DMOD1-RIPE",
13
+ ]
14
+ domains: List[str] = [
15
+ "gov.uk",
16
+ ]
@@ -0,0 +1,17 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Wasabi(BaseProvider):
6
+ tags: List[str] = ["cloud"]
7
+ short_description: str = "Wasabi"
8
+ long_description: str = "A cloud storage provider offering hot cloud storage services with high performance and low cost."
9
+ # {"org_id": "BLUEA-2-ARIN", "org_name": "Wasabi Technologies, Inc.", "country": "US", "asns": [395717]}
10
+ # {"org_id": "ORG-WTI2-AP-APNIC", "org_name": "Wasabi Technologies Inc.", "country": "US", "asns": [140642]}
11
+ org_ids: List[str] = [
12
+ "BLUEA-2-ARIN",
13
+ "ORG-WTI2-AP-APNIC",
14
+ ]
15
+ domains: List[str] = [
16
+ "wasabi.com",
17
+ ]
@@ -0,0 +1,14 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class X4b(BaseProvider):
6
+ tags: List[str] = ["cdn"]
7
+ short_description: str = "X4B"
8
+ long_description: str = (
9
+ "A DDoS protection and content delivery network service provider."
10
+ )
11
+ # {"org_id": "ORG-XA1-AP-APNIC", "org_name": "X4B", "country": "AU", "asns": [136165]}
12
+ org_ids: List[str] = [
13
+ "ORG-XA1-AP-APNIC",
14
+ ]
@@ -0,0 +1,107 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Yandex(BaseProvider):
6
+ v2fly_company: str = "yandex"
7
+ short_description: str = "Yandex Cloud"
8
+ long_description: str = "Russian cloud computing and internet services provider, offering infrastructure, storage, and various digital services."
9
+ # {
10
+ # "org_id": "ORG-YA1-RIPE",
11
+ # "org_name": "YANDEX LLC",
12
+ # "country": "RU",
13
+ # "asns": [
14
+ # {
15
+ # "asn": 13238,
16
+ # "name": "YANDEX"
17
+ # },
18
+ # {
19
+ # "asn": 44534,
20
+ # "name": "yandex-office"
21
+ # },
22
+ # {
23
+ # "asn": 215109,
24
+ # "name": "YANDEX-COM"
25
+ # }
26
+ # ],
27
+ # "emails": [
28
+ # "gbragin@yandex-team.ru",
29
+ # "noc@yandex.net"
30
+ # ]
31
+ # },
32
+ # {
33
+ # "org_id": "ORG-YATR1-RIPE",
34
+ # "org_name": "Buyuk Reklam Cozumleri LLC",
35
+ # "country": "TR",
36
+ # "asns": [
37
+ # {
38
+ # "asn": 212066,
39
+ # "name": "YANDEX-COM-TR"
40
+ # }
41
+ # ]
42
+ # },
43
+ # {
44
+ # "org_id": "ORG-YCTL2-RIPE",
45
+ # "org_name": "Yandex.Telecom LLC",
46
+ # "country": "RU",
47
+ # "asns": [
48
+ # {
49
+ # "asn": 202611,
50
+ # "name": "YCTL"
51
+ # },
52
+ # {
53
+ # "asn": 213952,
54
+ # "name": "YACLOUDII"
55
+ # }
56
+ # ]
57
+ # },
58
+ # {
59
+ # "org_id": "ORG-YIJL1-RIPE",
60
+ # "org_name": "Y. Izdeu men Jarnama LLP",
61
+ # "country": "KZ",
62
+ # "asns": [
63
+ # {
64
+ # "asn": 207304,
65
+ # "name": "YANDEX-KZ"
66
+ # }
67
+ # ]
68
+ # },
69
+ # {
70
+ # "org_id": "ORG-YL30-RIPE",
71
+ # "org_name": "Yandex.OFD LLC",
72
+ # "country": "RU",
73
+ # "asns": [
74
+ # {
75
+ # "asn": 207207,
76
+ # "name": "YL30"
77
+ # }
78
+ # ]
79
+ # },
80
+ # {
81
+ # "org_id": "ORG-YL62-RIPE",
82
+ # "org_name": "Yandex.Cloud LLC",
83
+ # "country": "RU",
84
+ # "asns": [
85
+ # {
86
+ # "asn": 200350,
87
+ # "name": "YandexCloud"
88
+ # },
89
+ # {
90
+ # "asn": 210656,
91
+ # "name": "YACLOUDBMS"
92
+ # },
93
+ # {
94
+ # "asn": 215013,
95
+ # "name": "YACLOUDCDN"
96
+ # }
97
+ # ]
98
+ # }
99
+ org_ids: List[str] = [
100
+ "ORG-YA1-RIPE", # YANDEX LLC, RU
101
+ "ORG-YATR1-RIPE", # Buyuk Reklam Cozumleri LLC (ASN: 212066, YANDEX-COM-TR)
102
+ "ORG-YCTL2-RIPE", # Yandex.Telecom LLC, RU
103
+ "ORG-YIJL1-RIPE", # Y. Izdeu men Jarnama LLP, KZ (ASN: 207304, YANDEX-KZ)
104
+ "ORG-YL30-RIPE", # Yandex.OFD LLC, RU
105
+ "ORG-YL62-RIPE", # Yandex.Cloud LLC, RU
106
+ ]
107
+ tags: List[str] = ["cloud"]
@@ -0,0 +1,27 @@
1
+ from cloudcheck.providers.base import BaseProvider
2
+ from typing import List
3
+
4
+
5
+ class Zoho(BaseProvider):
6
+ v2fly_company: str = "zoho"
7
+ short_description: str = "Zoho"
8
+ long_description: str = "An Indian software company that provides cloud-based business software and productivity tools including CRM, email, and office suites."
9
+ # {"org_id": "ORG-ZCB1-RIPE", "org_name": "ZOHO Corporation B.V", "country": "NL", "asns": [205111]}
10
+ # {"org_id": "ORG-ZCPL1-AP-APNIC", "org_name": "ZOHO Corporation Private Limited", "country": "IN", "asns": [56201]}
11
+ # {"org_id": "ORG-ZCPL2-AP-APNIC", "org_name": "Zoho Corporation PTY LTD", "country": "AU", "asns": [139006]}
12
+ # {"org_id": "ORG-ZCPL4-AP-APNIC", "org_name": "ZOHO CORPORATION PTE. LTD.", "country": "SG", "asns": [135102]}
13
+ # {"org_id": "ORG-ZJC1-AP-APNIC", "org_name": "Zoho Japan Corporation", "country": "JP", "asns": [141757]}
14
+ # {"org_id": "ORG-ZSTL1-RIPE", "org_name": "Zoho Software Trading LLC", "country": "AE", "asns": [214227]}
15
+ # {"org_id": "ZCC-22-ARIN", "org_name": "Zoho Canada Corporation", "country": "CA", "asns": [401636]}
16
+ # {"org_id": "ZOHOC-ARIN", "org_name": "ZOHO", "country": "US", "asns": [2639,397849,400780]}
17
+ tags: List[str] = ["cloud"]
18
+ org_ids: List[str] = [
19
+ "ORG-ZCB1-RIPE",
20
+ "ORG-ZCPL1-AP-APNIC",
21
+ "ORG-ZCPL2-AP-APNIC",
22
+ "ORG-ZCPL4-AP-APNIC",
23
+ "ORG-ZJC1-AP-APNIC",
24
+ "ORG-ZSTL1-RIPE",
25
+ "ZCC-22-ARIN",
26
+ "ZOHOC-ARIN",
27
+ ]
@@ -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)
@@ -0,0 +1,252 @@
1
+ Metadata-Version: 2.4
2
+ Name: cloudcheck
3
+ Version: 8.7.2
4
+ Summary: Detailed database of cloud providers. Instantly look up a domain or IP address
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
7
+
8
+ # CloudCheck
9
+
10
+ [![Python Version](https://img.shields.io/badge/python-3.9+-blue)](https://www.python.org)
11
+ [![PyPI](https://img.shields.io/pypi/v/cloudcheck)](https://pypi.org/project/cloudcheck/)
12
+ [![Rust Version](https://img.shields.io/badge/rust-1.70+-orange)](https://www.rust-lang.org)
13
+ [![Crates.io](https://img.shields.io/crates/v/cloudcheck?color=orange)](https://crates.io/crates/cloudcheck)
14
+ [![License](https://img.shields.io/badge/license-GPLv3-blue.svg)](https://github.com/blacklanternsecurity/cloudcheck/blob/stable/LICENSE)
15
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
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
+ [![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
+ [![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!
22
+
23
+ ### UPDATE 12-2025: Now supports government agencies (DoD, FBI, UK MoD, RU FSO)!
24
+
25
+ ### UPDATE 12-2025: Now rewritten in Rust!
26
+
27
+ CloudCheck is a simple Rust tool to check whether an IP address or hostname belongs to a cloud provider. It includes:
28
+
29
+ - A Rust CLI
30
+ - A Rust library
31
+ - Python bindings
32
+
33
+ ## Cloud Provider Signatures
34
+
35
+ The latest cloud provider signatures are available in [`cloud_providers_v2.json`](https://github.com/blacklanternsecurity/cloudcheck/blob/master/cloud_providers_v2.json), which is updated daily via CI/CD. Domains associated with each cloud provider are fetched dynamically from the [v2fly community repository](https://github.com/v2fly/domain-list-community), and CIDRs are fetched from [ASNDB](https://asndb.api.bbot.io/).
36
+
37
+ Used by [BBOT](https://github.com/blacklanternsecurity/bbot) and [BBOT Server](https://github.com/blacklanternsecurity/bbot-server).
38
+
39
+ ## CLI Usage
40
+
41
+ ```bash
42
+ # installation
43
+ cargo install cloudcheck
44
+
45
+ # lookup command
46
+ cloudcheck lookup 8.8.8.8
47
+ # output:
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
58
+ # output:
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
82
+ ```
83
+
84
+ ## Python Library Usage
85
+
86
+ ```bash
87
+ # installation
88
+ pip install cloudcheck
89
+ ```
90
+
91
+ ```python
92
+ import asyncio
93
+ from cloudcheck import CloudCheck
94
+
95
+ async def main():
96
+ cloudcheck = CloudCheck()
97
+ results = await cloudcheck.lookup("8.8.8.8")
98
+ print(results) # [{'name': 'Google', 'tags': ['cloud']}]
99
+
100
+ asyncio.run(main())
101
+ ```
102
+
103
+ ## Rust Library Usage
104
+
105
+ ```toml
106
+ # Add to Cargo.toml
107
+ [dependencies]
108
+ cloudcheck = "8.0"
109
+ tokio = { version = "1", features = ["full"] }
110
+ ```
111
+
112
+ ```rust
113
+ use cloudcheck::CloudCheck;
114
+
115
+ #[tokio::main]
116
+ async fn main() {
117
+ let cloudcheck = CloudCheck::new();
118
+ let results = cloudcheck.lookup("8.8.8.8").await.unwrap();
119
+ println!("{:?}", results); // [CloudProvider { name: "Google", tags: ["cloud"] }]
120
+ }
121
+ ```
122
+
123
+ ## Update the JSON database
124
+
125
+ ```bash
126
+ export BBOT_IO_API_KEY=<your-api-key>
127
+
128
+ uv sync
129
+ uv run cloudcheck_update/cli.py
130
+ ```
131
+
132
+ ## Adding a new cloud provider
133
+
134
+ When adding a new cloud provider:
135
+
136
+ 1. Create a new file in the `cloudcheck/providers` directory and name it whatever you want, e.g. `amazon.py`.
137
+ 2. Inside that file, create a new class that inherits from `BaseProvider`.
138
+ 3. Inside that class, fill out any of the following attributes that are relevant to your provider:
139
+ - `v2fly_company`: The company name for v2fly domain fetching. This will dynamically fetch domains from the v2fly community repository, whose purpose is to keep track of domain ownership across different companies.
140
+ - `org_ids`: A list of organization IDs from ASNDB. These are always preferable to hard-coded ASNs or CIDRs, since they are updated daily from live sources. Big companies like Amazon typically have one organization ID per Regional Internet Registries (ARIN, RIPE, APNIC, LACNIC, AFRINIC), and within that organization ID, they may have multiple ASNs.
141
+ - `asns`: A list of ASNs, e.g. `[12345, 67890]`
142
+ - `cidrs`: A list of CIDRs, e.g. `["1.2.3.4/32", "5.6.7.8/32"]` (it's always preferred to use `org_ids` or if necessary `asns` over manually-specified CIDRs)
143
+ - `domains`: A list of domains, e.g. `["amazon.com", "amazon.co.uk"]` (it's always preferred to use `v2fly_company` instead of hard-coding domains)
144
+ - `tags`: A list of tags for the provider. These are used in BBOT to tag IPs, DNS names etc. that match this provider. Examples: `cloud`, `cdn`, `waf`, etc.
145
+ - `regexes`: A dictionary of regexes for the provider. These are used in BBOT to extract / validate cloud resources like storage buckets. Currently valid regexes are:
146
+ - `STORAGE_BUCKET_NAME`: A regex for the name of a storage bucket (useful when brute-forcing bucket names, as you can discard invalid bucket names early).
147
+ - `STORAGE_BUCKET_HOSTNAME`: A regex for the hostname of a storage bucket
148
+
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.
150
+
151
+ <!--PROVIDERTABLE-->
152
+ ## Cloud Providers (56)
153
+
154
+ | Name | Description | Tags | Domains | Subnets |
155
+ |------|-------------|------|---------|----------|
156
+ | Akamai | A content delivery network and cloud services provider that delivers web and internet security services. | cloud | 81 | 6375 |
157
+ | Alibaba Cloud | A Chinese cloud computing company and subsidiary of Alibaba Group, providing cloud services and infrastructure. | cloud | 394 | 89 |
158
+ | Amazon Web Services | A comprehensive cloud computing platform provided by Amazon, offering infrastructure services, storage, and computing power. | cloud | 231 | 14201 |
159
+ | Arvancloud | An Iranian cloud computing and content delivery network provider offering cloud infrastructure and CDN services. | cdn | 1 | 9 |
160
+ | Backblaze | A cloud storage and backup service provider offering data backup and cloud storage solutions. | cloud | 2 | 27 |
161
+ | Baidu Cloud Acceleration (百度云加速) | A Chinese content delivery network and cloud acceleration service provided by Baidu. | cdn | 134 | 0 |
162
+ | CacheFly | A content delivery network provider offering global CDN services. | cdn | 0 | 93 |
163
+ | CDNetworks (씨디네트웍스) | A Korean content delivery network provider offering CDN and cloud services. | cdn | 0 | 3 |
164
+ | Cisco | A multinational technology corporation that designs, manufactures, and sells networking hardware, software, and telecommunications equipment. | cloud | 121 | 647 |
165
+ | Cloudflare | A web infrastructure and security company providing content delivery network services, DDoS mitigation, and web security solutions. | cdn | 71 | 2790 |
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 | 173 |
167
+ | DDoS Guard | A DDoS protection and content delivery network service provider. | cdn | 0 | 19 |
168
+ | Dell | A multinational technology company that develops, sells, repairs, and supports computers and related products and services. | cloud | 236 | 101 |
169
+ | DigitalOcean | A cloud infrastructure provider offering virtual private servers, managed databases, and other cloud services for developers and businesses. | cloud | 4 | 271 |
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 | 9143 |
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 |
172
+ | Fastly | A content delivery network and edge cloud platform that provides edge computing, security, and performance services. | cdn | 8 | 1056 |
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 | 1412 |
175
+ | GitHub | A web-based platform for version control and collaboration using Git, providing hosting for software development and code repositories. | cdn | 33 | 4299 |
176
+ | GoCache | A Brazilian content delivery network provider offering CDN services. | cdn | 0 | 25 |
177
+ | Google Cloud | A suite of cloud computing services provided by Google, including infrastructure, platform, and software services for businesses and developers. | cloud | 1109 | 1871 |
178
+ | Hewlett Packard Enterprise | A multinational enterprise information technology company that provides servers, storage, networking, and cloud services. | cloud | 16 | 38 |
179
+ | Heroku | A cloud platform as a service that enables developers to build, run, and operate applications entirely in the cloud. | cloud | 12 | 0 |
180
+ | Hetzner | A German cloud hosting provider offering dedicated servers, cloud instances, and storage solutions. | cloud | 15 | 119 |
181
+ | Hostway (호스트웨이) | A Korean cloud hosting and infrastructure provider. | cloud | 0 | 59 |
182
+ | Huawei | A Chinese multinational technology corporation that designs, develops, and sells telecommunications equipment, consumer electronics, and cloud services. | cloud | 338 | 264 |
183
+ | IBM | A multinational technology corporation that provides hardware, software, cloud computing, and consulting services. | cloud | 20 | 393 |
184
+ | Imperva | A cybersecurity company that provides web application firewall, DDoS protection, and data security solutions. | waf | 1 | 383 |
185
+ | Kamatera | A cloud infrastructure provider offering virtual private servers, cloud servers, and managed cloud services. | cloud | 1 | 158 |
186
+ | KINX (한국인터넷인프라) | A Korean content delivery network and cloud infrastructure provider. | cdn | 0 | 137 |
187
+ | KT Cloud (KT클라우드) | A Korean cloud computing service provided by KT Corporation. | cloud | 0 | 18 |
188
+ | Leaseweb | A global hosting and cloud infrastructure provider offering dedicated servers, cloud hosting, and CDN services. | cloud | 0 | 1493 |
189
+ | LG U+ (LG유플러스) | A Korean telecommunications company offering CDN services. | cdn | 0 | 168 |
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 | 1174 |
191
+ | Microsoft 365 | A cloud-based productivity suite provided by Microsoft, including Office applications and cloud services. | cloud | 189 | 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 |
194
+ | OVHcloud | A French cloud computing company that provides web hosting, dedicated servers, and cloud infrastructure services. | cloud | 3 | 509 |
195
+ | Oracle | A multinational technology corporation that provides database software, cloud engineering systems, and enterprise software products. | cloud | 18 | 2385 |
196
+ | Qrator | A DDoS protection and content delivery network service provider. | cdn | 0 | 19 |
197
+ | Quic.cloud | A content delivery network and edge computing platform providing CDN services. | cdn | 0 | 155 |
198
+ | Russian Federal Security Service | A Russian federal executive body responsible for counterintelligence, internal and border security, counterterrorism, and surveillance. | gov | 0 | 17 |
199
+ | Rackspace | A managed cloud computing company that provides hosting, cloud services, and managed infrastructure solutions. | cloud | 1 | 199 |
200
+ | Salesforce | A cloud-based software company that provides customer relationship management services and enterprise cloud computing solutions. | cloud | 39 | 49 |
201
+ | Scaleway | A French cloud computing company that provides virtual private servers, bare metal servers, and cloud infrastructure services. | cloud | 1 | 42 |
202
+ | SK Broadband (SK브로드밴드) | A Korean telecommunications company offering CDN services. | cdn | 0 | 22 |
203
+ | StormWall | A DDoS protection and web application firewall service provider. | cdn | 0 | 18 |
204
+ | Sucuri | A website security and web application firewall service provider. | waf | 0 | 16 |
205
+ | Tencent Cloud (腾讯云) | A Chinese cloud computing service provider and subsidiary of Tencent, offering cloud infrastructure and platform services. | cloud | 597 | 371 |
206
+ | United Kingdom Ministry of Defence | A U.K. government department responsible for implementing the defence policy of the United Kingdom and managing the British Armed Forces. | gov | 1 | 0 |
207
+ | Wasabi | A cloud storage provider offering hot cloud storage services with high performance and low cost. | cloud | 1 | 20 |
208
+ | X4B | A DDoS protection and content delivery network service provider. | cdn | 0 | 2 |
209
+ | Yandex Cloud | Russian cloud computing and internet services provider, offering infrastructure, storage, and various digital services. | cloud | 56 | 79 |
210
+ | Zoho | An Indian software company that provides cloud-based business software and productivity tools including CRM, email, and office suites. | cloud | 13 | 82 |
211
+ | Zscaler | A cloud security company providing secure internet access, cloud security, and zero trust network access services. | cloud | 0 | 251 |
212
+ <!--ENDPROVIDERTABLE-->
213
+
214
+ ## Development
215
+
216
+ ### Python
217
+
218
+ #### Setup
219
+ ```bash
220
+ uv sync
221
+ uv run maturin develop --release
222
+ ```
223
+
224
+ #### Running Tests
225
+ ```bash
226
+ # python tests
227
+ uv run pytest test_cloudcheck.py -v
228
+
229
+ # docker tests
230
+ python test_docker.py
231
+ ```
232
+
233
+ #### Linting
234
+ ```bash
235
+ # Check for linting issues
236
+ uv run ruff check && uv run ruff format .
237
+ ```
238
+
239
+ ### Rust
240
+
241
+ #### Running Tests
242
+ ```bash
243
+ cargo test --verbose --all-features
244
+ ```
245
+
246
+ #### Formatting
247
+ ```bash
248
+ cargo fmt --all
249
+
250
+ cargo clippy --all-targets --all-features -- -D warnings
251
+ ```
252
+
@@ -0,0 +1,65 @@
1
+ cloudcheck/__init__.py,sha256=Bhl6yAlOs8SFIL9Qw-EX8QGeHWeKfo7_IyXOeAefMgU,61
2
+ cloudcheck/cloudcheck.cpython-314t-aarch64-linux-musl.so,sha256=BLMZGCC2IgfaMcFGdVI-o41Hx_QB5iyJlYiKSX0wfdg,11079801
3
+ cloudcheck/helpers.py,sha256=NqhcZxAayouR7feqjq76hpUZcmjt0YBWoAdxulsVdTc,7721
4
+ cloudcheck/providers/__init__.py,sha256=CeokJETwsKYZUlArE723UTPtize7OJ799YLPcyIv3z0,1651
5
+ cloudcheck/providers/akamai.py,sha256=Czph3Sfo0uq6YCMDpi6WVZf9qJV3bZcmLenonrxnVMk,1822
6
+ cloudcheck/providers/alibaba.py,sha256=kN_HgkfmeVZGMxo-bOHthObdokWx-R-0K7OFmQ4iSII,554
7
+ cloudcheck/providers/amazon.py,sha256=5r8psEU4PJPa7PpPFi2B2X5MWAD1Bdi9jOyybElaYOc,1845
8
+ cloudcheck/providers/arvancloud.py,sha256=PeFy02lcOdWE8fWv3eq11al3e0ZaQ6FPSQffPWqL_eI,851
9
+ cloudcheck/providers/backblaze.py,sha256=xX6kxi2oLj-VCtMGQkbXRU7bYkT-wYkE-M-_c6BqReA,527
10
+ cloudcheck/providers/baidu.py,sha256=66U_AEbTUeJZhuDJ3J_qr_JTpMHszn2CkUsMf9NRqqQ,783
11
+ cloudcheck/providers/base.py,sha256=lmxSGWnVanF7SWbSxnVxE4VZMeEtPBegz94FnVIbpiU,11254
12
+ cloudcheck/providers/cachefly.py,sha256=YCq4EyUOiMpkdi_d16I8398Il3JI-FTtDv1g3LcWHVE,860
13
+ cloudcheck/providers/cdnetworks.py,sha256=tZWlPWUZEqZKud8MGv364ZuedyVPWJJjzslI3OgqsDg,481
14
+ cloudcheck/providers/cisco.py,sha256=IaJIpyor35pq0TZP2S0tMVBF3yjJ-nebwNak-nVhXQ0,2434
15
+ cloudcheck/providers/cloudflare.py,sha256=G0fxIIGB_sz8Dzg8G4XFU3HjRZl0kpekL37Gf8AUBgE,1984
16
+ cloudcheck/providers/cloudfront.py,sha256=4_4D8GJPtATaNZyYxTIGVSGwSuC8OJLiNHy1e2NA9yk,804
17
+ cloudcheck/providers/ddosguard.py,sha256=xwM1ayJkUeD7SZnbS6Iwa9Ud6U64i_D0lpzcv7VypJA,461
18
+ cloudcheck/providers/dell.py,sha256=FjfrvUSFeZpIaYLipKVU9Pd_aFBBFw-1hNaAkpGS2RY,584
19
+ cloudcheck/providers/digitalocean.py,sha256=lZsSB2lXr0ggw_exdPb9PLazhcgs-Q2nh6tvmZ1PqCY,1271
20
+ cloudcheck/providers/dod.py,sha256=WTA1AGNBVFfJ7TousuUtpl5R-b-lKT9CI7oJZX54q7g,1358
21
+ cloudcheck/providers/fastly.py,sha256=0SZBmthVvh11Jdkc9xZgHQ6XMTPoPxFm1niK3HDHyeY,881
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
25
+ cloudcheck/providers/github.py,sha256=h-ESNNl1tQXSO8q_HswME4x8h-Qu9O-h7d4Z7FpyUOI,1036
26
+ cloudcheck/providers/gocache.py,sha256=blnXP4e_X-bBhp1DpeJrmugFLxb4Lo1WDlXQmRSwgE8,554
27
+ cloudcheck/providers/google.py,sha256=KkkQEFwXN8xTxy4h7t1O8JNBcVIJx6UXMYw4n-ZU21Q,3427
28
+ cloudcheck/providers/heroku.py,sha256=0bRaIP44hWOwEqlHJ9U_vf8I0sAYTy5DRl0gKgg-HIY,356
29
+ cloudcheck/providers/hetzner.py,sha256=MT-d0ylPVcqeHZOBMrO69SF7zaHvYj7MuRaiOhs_U24,810
30
+ cloudcheck/providers/hostway.py,sha256=R1zFZ9pZYmgMVJl6dHTINRNSevj33JK1jarcMhRO_VM,497
31
+ cloudcheck/providers/hpe.py,sha256=aiZQK2KzHpG00AFHp6InYVxnRxNYfmcAu_TnRPFqNBo,726
32
+ cloudcheck/providers/huawei.py,sha256=w8996PLDGATXwEZUTGdvygyNAPG4d4lLbgW6WRmzR8M,1024
33
+ cloudcheck/providers/ibm.py,sha256=WqSe6G5KinmUDrUkJRUehcrd_diFexcNKmDsvt2vN-k,3776
34
+ cloudcheck/providers/imperva.py,sha256=oQWCCYJ_A7d2aSl2zjyJkmZtq2N4BGTTfsSW2LD-1xk,1008
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
38
+ cloudcheck/providers/leaseweb.py,sha256=aNMq2Z0JkQBJSs7_YGZPsiJShjEmkGxgMVaKZjkBmII,1921
39
+ cloudcheck/providers/lgtelecom.py,sha256=kZn_uOHYk2DJqh560hxzSlYP2FBcz1Y4CnagM7BzPXo,508
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
44
+ cloudcheck/providers/oracle.py,sha256=1O0_phByV3t_0cfZsD4mdl5_RlYHbaIlQUtCNX5tKgI,1921
45
+ cloudcheck/providers/ovh.py,sha256=i-GM5bDhHzxHabCoqkmZyp4OSHkSUwdBCmsHLJWULcU,562
46
+ cloudcheck/providers/qrator.py,sha256=5Pnt7oIiRXXgUlJKn2IeBH_sz2JHpIso5Xe5IZ5P6xo,593
47
+ cloudcheck/providers/quiccloud.py,sha256=emSrLrUg_2jiyktVYQ80fdHelZcfk-3-zb4m9V4XhEs,1248
48
+ cloudcheck/providers/rackspace.py,sha256=je_1Ds25Hd70hbsbJP_Ex56n1cX1_3fGPazW_2LWSPY,1174
49
+ cloudcheck/providers/ru_fso.py,sha256=Uok9sD4EeWiBZbaTSKB5EGgAM9byWc0d4GSt_UBvk-g,467
50
+ cloudcheck/providers/salesforce.py,sha256=N-BOrUpIyf62zsMGaK2J-WsLFYyT9MO6uCclP02Snjw,851
51
+ cloudcheck/providers/scaleway.py,sha256=EmS-MobNspdoqHsZQvxgl6j__yXXj7elKet44WcuTx4,689
52
+ cloudcheck/providers/skbroadband.py,sha256=N8drXa_784lVmXxj6BlPLKQ1FLvviG3cWrHkYzm7LRA,544
53
+ cloudcheck/providers/stormwall.py,sha256=PyUsMxJeK0lJMjD-OwA3-N5LBWxuZaNjVKqAislVl3E,456
54
+ cloudcheck/providers/sucuri.py,sha256=LTGNb9f5esF617JnXuT3SyoT0lEAzdK55W8nXwCi_vA,431
55
+ cloudcheck/providers/tencent.py,sha256=Q4yHQDGMa1CdcTR2MvEgqOuDeJqAU4gwVdaKLtzPxnA,908
56
+ cloudcheck/providers/uk_mod.py,sha256=UEoeQmDiw2tJfOtCEe-e6TWkdCUpUa-rouNZkp0GDSY,524
57
+ cloudcheck/providers/wasabi.py,sha256=MJ1c46qauijwJR8Q1pxk2D4QZ1MXaYR4QHA7tNmGn6U,665
58
+ cloudcheck/providers/x4b.py,sha256=btHtR8QMpAlN9qbK6w6yOTMxeRNIswovmH-VesYxNSI,430
59
+ cloudcheck/providers/yandex.py,sha256=zIFPmNqlXIKWPL8qF8yDVG6My5BPaHdLaNg057Qrj04,2649
60
+ cloudcheck/providers/zoho.py,sha256=bo_bhd1OP3n_66abQmjIexYiuNQFAQe8VHyJONyv5so,1498
61
+ cloudcheck/providers/zscaler.py,sha256=jW6W7GcFdeCd1X9M7QH9ChoVSLxK7rJfT9N8bd8arhY,1080
62
+ cloudcheck-8.7.2.dist-info/METADATA,sha256=E4n1sofCMajtLlpvN1YC8sRqJDrkYEdiz64sCTAiwT8,15616
63
+ cloudcheck-8.7.2.dist-info/WHEEL,sha256=KYlyYI2BbBPuKiYK7dRkSfy5CoUJPR_Cjme4XQiA8gY,110
64
+ cloudcheck.libs/libgcc_s-39080030.so.1,sha256=fIO6GHOh8Ft9CR0Geu7wSUb9Xnl122iTtrxQQ9TAkTQ,789673
65
+ cloudcheck-8.7.2.dist-info/RECORD,,