1. 程式人生 > 其它 >利用Python 第三方模組Shodan實現資訊收集

利用Python 第三方模組Shodan實現資訊收集

 1 import shodan
 2 import optparse
 3 import requests
 4 import sys
 5 
 6 class ShodanSearch:
 7     def __init__(self) -> None:
 8         self.domain = self.get_params()
 9         print(self.domain)
10         self.shodan_url = 'https://api.shodan.io/dns/resolve'
11         self.shodan_api ='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' 12 13 def get_params(self): 14 parser = optparse.OptionParser("Usage: <Program> -d domain name") 15 parser.add_option('-d', '--domain', dest='domain', type='string', help='Specify domain name to search') 16 options, args = parser.parse_args() 17 if options.domain is
None: 18 print(parser.usage) 19 sys.exit(0) 20 return options.domain 21 22 23 def get_ip(self): 24 try: 25 headers = { 26 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0' 27 } 28 params = {
29 'hostnames': self.domain, 30 'key': self.shodan_api 31 } 32 33 response = requests.get(url=self.shodan_url, params=params).json() 34 return response[self.domain] 35 except Exception as e: 36 print(e) 37 sys.exit() 38 39 def host_info(self): 40 try: 41 api = shodan.Shodan(self.shodan_api) 42 res = api.host(self.get_ip()) 43 print(res) 44 45 except Exception as e: 46 print(e) 47 sys.exit() 48 49 50 if __name__ == "__main__": 51 shodanobj = ShodanSearch() 52 shodanobj.host_info()