mirror of
https://github.com/vel21ripn/nDPI.git
synced 2026-04-28 15:09:47 +00:00
44 lines
1.3 KiB
Python
Executable file
44 lines
1.3 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import json
|
|
import urllib.request
|
|
import netaddr
|
|
|
|
GOOG_URL = "https://www.gstatic.com/ipranges/goog.json"
|
|
CLOUD_URL = "https://www.gstatic.com/ipranges/cloud.json"
|
|
|
|
|
|
def read_url(url):
|
|
try:
|
|
s = urllib.request.urlopen(url).read()
|
|
return json.loads(s)
|
|
except urllib.request.HTTPError:
|
|
print("Invalid HTTP response from %s" % url)
|
|
return {}
|
|
except json.decoder.JSONDecodeError:
|
|
print("Could not parse HTTP response from %s" % url)
|
|
return {}
|
|
|
|
|
|
def main():
|
|
goog_json = read_url(GOOG_URL)
|
|
cloud_json = read_url(CLOUD_URL)
|
|
|
|
if goog_json and cloud_json:
|
|
# print("{} published: {}".format(GOOG_URL,goog_json.get('creationTime')))
|
|
# print("{} published: {}".format(CLOUD_URL,cloud_json.get('creationTime')))
|
|
goog_cidrs = netaddr.IPSet()
|
|
for pref in goog_json['prefixes']:
|
|
if pref.get('ipv6Prefix'):
|
|
goog_cidrs.add(pref.get('ipv6Prefix'))
|
|
cloud_cidrs = netaddr.IPSet()
|
|
for pref in cloud_json['prefixes']:
|
|
if pref.get('ipv6Prefix'):
|
|
cloud_cidrs.add(pref.get('ipv6Prefix'))
|
|
# print("IP ranges for Google APIs and services default domains:")
|
|
for i in goog_cidrs.difference(cloud_cidrs).iter_cidrs():
|
|
print(i)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|