{"id":23433,"library":"cloudcheck","title":"cloudcheck","description":"Detailed database of cloud providers for instantly looking up a domain or IP address. Current version: 9.3.0, requires Python >=3.9. Release cadence is active, with frequent updates.","status":"active","version":"9.3.0","language":"python","source_language":"en","source_url":"https://github.com/blacklanternsecurity/cloudcheck","tags":["cloud","ip-lookup","domain-lookup","provider-detection","security"],"install":[{"cmd":"pip install cloudcheck","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"HTTP requests to cloud provider APIs","package":"requests","optional":false}],"imports":[{"note":"CloudCheck is a class, not a module.","wrong":"import CloudCheck","symbol":"CloudCheck","correct":"from cloudcheck import CloudCheck"},{"note":"lookup is a method on the CloudCheck instance, not a standalone function.","wrong":"from cloudcheck import lookup","symbol":"lookup","correct":"from cloudcheck import CloudCheck; cc = CloudCheck(); result = cc.lookup('example.com')"}],"quickstart":{"code":"from cloudcheck import CloudCheck\n\ncc = CloudCheck()\nresult = cc.lookup('8.8.8.8')\nprint(result)","lang":"python","description":"Create a CloudCheck instance and look up a domain or IP address. Returns provider info or None."},"warnings":[{"fix":"Upgrade Python to 3.9 or higher.","message":"CloudCheck v9+ dropped support for Python <3.9.","severity":"breaking","affected_versions":">=9.0.0"},{"fix":"if result is not None: ...","message":"The lookup method may return None for unknown IPs/domains. Always check for None before accessing attributes.","severity":"gotcha","affected_versions":"all"},{"fix":"Use lookup() instead of lookup_ip().","message":"The method 'lookup_ip' was renamed to 'lookup' in v8.0.0. 'lookup_ip' still works but is deprecated.","severity":"deprecated","affected_versions":">=8.0.0 <9.0.0"},{"fix":"Implement caching or use with caution in loops.","message":"Rate limiting: cloudcheck sends requests to external APIs. Excessive requests may lead to throttling.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Ensure the package is installed: pip install cloudcheck. Then import as from cloudcheck import CloudCheck.","cause":"The package is installed as 'cloudcheck', but the import statement might be wrong.","error":"ModuleNotFoundError: No module named 'cloudcheck'"},{"fix":"Use: from cloudcheck import CloudCheck; cc = CloudCheck(); result = cc.lookup(...)","cause":"lookup is not a top-level function; it's a method of CloudCheck class.","error":"AttributeError: module 'cloudcheck' has no attribute 'lookup'"},{"fix":"Check for None: if result: print(result['provider']) else: print('Not found')","cause":"lookup() returned None when IP/domain was not found, and you tried to access ['provider'] on None.","error":"TypeError: 'NoneType' object is not subscriptable"},{"fix":"Ensure input is a valid IPv4 or IPv6 address string or a domain name.","cause":"Passing an invalid IP address string that cannot be parsed.","error":"ValueError: invalid literal for int() with base 10: '...'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}