mirror of
https://github.com/The-Art-of-Hacking/h4cker
synced 2024-11-21 18:33:03 +00:00
Create cloud_provider.py
This commit is contained in:
parent
eddf7305fd
commit
fd91dfb182
1 changed files with 71 additions and 0 deletions
|
@ -0,0 +1,71 @@
|
||||||
|
'''
|
||||||
|
This script takes a domain as input and returns the IP address of the domain, the organization
|
||||||
|
owning the IP address, and whether the IP address belongs to a major cloud provider.
|
||||||
|
Author: Omar Santos @santosomar
|
||||||
|
'''
|
||||||
|
|
||||||
|
# Import the necessary modules
|
||||||
|
import socket
|
||||||
|
import whois
|
||||||
|
|
||||||
|
def get_domain_ip(domain):
|
||||||
|
'''
|
||||||
|
get domain IP address
|
||||||
|
:param domain: domain
|
||||||
|
:return: ip_address
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
ip_address = socket.gethostbyname(domain)
|
||||||
|
return ip_address
|
||||||
|
except socket.gaierror:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_whois_info(ip_address):
|
||||||
|
'''
|
||||||
|
get whois information
|
||||||
|
:param ip_address: ip_address
|
||||||
|
:return: whois information
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
w = whois.whois(ip_address)
|
||||||
|
return w
|
||||||
|
except whois.WhoisException:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def is_major_cloud_provider(whois_info):
|
||||||
|
'''
|
||||||
|
check if the IP address belongs to a major cloud provider
|
||||||
|
:param whois_info: whois_info
|
||||||
|
:return: True or False
|
||||||
|
'''
|
||||||
|
cloud_providers = ["Amazon", "Azure", "Microsoft", "Google", "Digital Ocean", "Alibaba", "Oracle"]
|
||||||
|
for provider in cloud_providers:
|
||||||
|
if provider.lower() in whois_info.lower():
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def main(domain):
|
||||||
|
'''
|
||||||
|
main function
|
||||||
|
:param domain: domain
|
||||||
|
:return: None
|
||||||
|
'''
|
||||||
|
ip_address = get_domain_ip(domain)
|
||||||
|
if ip_address:
|
||||||
|
print(f"The IP address of {domain} is {ip_address}")
|
||||||
|
whois_info = get_whois_info(ip_address)
|
||||||
|
if whois_info and whois_info.org:
|
||||||
|
print(f"The organization owning the IP is: {whois_info.org}")
|
||||||
|
if is_major_cloud_provider(str(whois_info.org)):
|
||||||
|
print(f"The IP address belongs to a major cloud provider.")
|
||||||
|
else:
|
||||||
|
print(f"The IP address does not belong to a known major cloud provider.")
|
||||||
|
else:
|
||||||
|
print(f"Could not retrieve WHOIS information.")
|
||||||
|
else:
|
||||||
|
print(f"Could not find IP address for {domain}.")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
domain = input("""Cloud Checker example by Omar Santos.
|
||||||
|
Please enter a domain: """)
|
||||||
|
main(domain)
|
Loading…
Reference in a new issue