-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupdate_raw.py
167 lines (129 loc) · 6.31 KB
/
update_raw.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
import json
from src.dl.download_aws import AWSCidrDownloader
from src.dl.download_atlassian import AtlassianCidrDownloader
from src.dl.download_azure import AzureCidrDownloader
from src.dl.download_cloudflare import CloudflareCidrDownloader
from src.dl.download_datadog import DatadogCidrDownloader
from src.dl.download_digitalocean import DigitalOceanCidrDownloader
from src.dl.download_fastly import FastlyCidrDownloader
from src.dl.download_github import GithubCidrDownloader
from src.dl.download_google import GcpCidrDownloader
from src.dl.download_grafana import GrafanaCidrDownloader
from src.dl.download_iana import IanaCidrDownloader
from src.dl.download_linode import LinodeCidrDownloader
from src.dl.download_maxcdn import MaxCDNCidrDownloader
from src.dl.download_okta import OktaCidrDownloader
from src.dl.download_oracle import OracleCidrDownloader
from src.dl.download_stripe import StripeCidrDownloader
from src.dl.download_pingdom import PingdomCidrDownloader
from src.dl.download_zscaler import ZScalerCidrDownloader
from src.dl.download_zoom import ZoomCidrDownloader
from src.dl.download import CidrWriter
'''
The updater saves the raw IP data from the source to the local repository
so we can analyze it later, whenever we want.
This can be run independently from the handler.py and test.py.
'''
def update():
writer = CidrWriter()
aws_downloader = AWSCidrDownloader()
result = aws_downloader.get_range()
writer.write('data/raw/aws.json', json.dumps(result, indent=2))
atlassian_downloader = AtlassianCidrDownloader()
result = atlassian_downloader.get_range()
writer.write('data/raw/atlassian.json', json.dumps(result, indent=2))
azure_downloader = AzureCidrDownloader()
result = azure_downloader.get_public_range()
if result != None:
writer.write('data/raw/azure-public.json', json.dumps(result, indent=2))
result = azure_downloader.get_china_range()
if result != None:
writer.write('data/raw/azure-china.json', json.dumps(result, indent=2))
result = azure_downloader.get_germany_range()
if result != None:
writer.write('data/raw/azure-germany.json', json.dumps(result, indent=2))
result = azure_downloader.get_gov_range()
if result != None:
writer.write('data/raw/azure-gov.json', json.dumps(result, indent=2))
cloudflare_downloader = CloudflareCidrDownloader()
result = cloudflare_downloader.get_range_v4()
writer.write('data/raw/cloudflare-ipv4.txt', result)
result = cloudflare_downloader.get_range_v6()
writer.write('data/raw/cloudflare-ipv6.txt', result)
datadog_downloader = DatadogCidrDownloader()
result = datadog_downloader.get_range()
writer.write('data/raw/datadog.json', json.dumps(result, indent=2))
digitalocean_downloader = DigitalOceanCidrDownloader()
result = digitalocean_downloader.get_range()
writer.write('data/raw/digitalocean.txt', result)
fastly_downloader = FastlyCidrDownloader()
result = fastly_downloader.get_range()
writer.write('data/raw/fastly.json', json.dumps(result, indent=2))
google_downloader = GcpCidrDownloader()
result = google_downloader.get_range()
writer.write('data/raw/gcp.json', json.dumps(result, indent=2))
github_downloader = GithubCidrDownloader()
result = github_downloader.get_range()
writer.write('data/raw/github.json', json.dumps(result, indent=2))
grafana_downloader = GrafanaCidrDownloader()
result = grafana_downloader.get_hosted_alerts_range()
writer.write('data/raw/grafana-hosted-alerts.txt', result)
result = grafana_downloader.get_hosted_grafana_range()
writer.write('data/raw/grafana-hosted.txt', result)
result = grafana_downloader.get_hosted_metrics_range()
writer.write('data/raw/grafana-hosted-metrics.txt', result)
result = grafana_downloader.get_hosted_traces_range()
writer.write('data/raw/grafana-hosted-traces.txt', result)
result = grafana_downloader.get_hosted_logs_range()
writer.write('data/raw/grafana-hosted-logs.txt', result)
result = grafana_downloader.get_dns_names()
writer.write('data/raw/grafana-synthetic-monitoring.json', json.dumps(result, indent=2))
iana_downloader = IanaCidrDownloader()
result = iana_downloader.get_ipv4_block()
writer.write('data/raw/iana-ipv4.csv', result)
result = iana_downloader.get_ipv6_block()
writer.write('data/raw/iana-ipv6.csv', result)
linode_downloader = LinodeCidrDownloader()
result = linode_downloader.get_range()
writer.write('data/raw/linode.txt', result)
maxcdn_downloader = MaxCDNCidrDownloader()
result = maxcdn_downloader.get_range()
writer.write('data/raw/maxcdn.txt', result)
okta_downloader = OktaCidrDownloader()
result = okta_downloader.get_range()
writer.write('data/raw/okta.json', json.dumps(result, indent=2))
oracle_downloader = OracleCidrDownloader()
result = oracle_downloader.get_range()
writer.write('data/raw/oracle.json', json.dumps(result, indent=2))
pingdom_downloader = PingdomCidrDownloader()
result = pingdom_downloader.get_range_v4()
writer.write('data/raw/pingdom-ipv4.txt', result)
result = pingdom_downloader.get_range_v6()
writer.write('data/raw/pingdom-ipv6.txt', result)
zoom_downloader = ZoomCidrDownloader()
result, source, website = zoom_downloader.get_zoom_range()
writer.write('data/raw/zoom-range.txt', result)
result, source, website = zoom_downloader.get_zoom_meeting_range()
writer.write('data/raw/zoom-meeting.txt', result)
result, source, website = zoom_downloader.get_zoom_crc_range()
writer.write('data/raw/zoom-crc.txt', result)
result, source, website = zoom_downloader.get_zoom_phone_range()
writer.write('data/raw/zoom-phone.txt', result)
result, source, website = zoom_downloader.get_zoom_cc_range()
writer.write('data/raw/zoom-contact-center.txt', result)
result, source, website = zoom_downloader.get_zoom_cdn_range()
writer.write('data/raw/zoom-cdn.txt', result)
stripe_downloader = StripeCidrDownloader()
result = stripe_downloader.get_api_ip()
writer.write('data/raw/stripe-api-ip-range.txt', result)
result = stripe_downloader.get_webhook_ip()
writer.write('data/raw/stripe-webhook-ip-range.txt', result)
zscaler_downloader = ZScalerCidrDownloader()
zscaler_config = zscaler_downloader.get_config()
for config in zscaler_config:
result = zscaler_downloader.get_range(config)
writer.write(f"data/raw/{config['name']}", json.dumps(result, indent=2))
def main():
update()
if __name__ == "__main__":
main()