diff --git a/shodan/cli/settings.py b/shodan/cli/settings.py index 6f27e5d..30291a5 100644 --- a/shodan/cli/settings.py +++ b/shodan/cli/settings.py @@ -8,3 +8,4 @@ 'org': 'cyan', 'vulns': 'red', } +REQUESTS_TIMEOUT = (30, 30) # (connect, read) diff --git a/shodan/client.py b/shodan/client.py index 6e66259..4581806 100644 --- a/shodan/client.py +++ b/shodan/client.py @@ -15,6 +15,7 @@ from .exception import APIError from .helpers import api_request, create_facet_string from .stream import Stream +from .cli.settings import REQUESTS_TIMEOUT # Try to disable the SSL warnings in urllib3 since not everybody can install @@ -294,13 +295,13 @@ def _request(self, function, params, service='shodan', method='get'): try: method = method.lower() if method == 'post': - data = self._session.post(base_url + function, params) + data = self._session.post(base_url + function, params, timeout=REQUESTS_TIMEOUT) elif method == 'put': - data = self._session.put(base_url + function, params=params) + data = self._session.put(base_url + function, params=params, timeout=REQUESTS_TIMEOUT) elif method == 'delete': - data = self._session.delete(base_url + function, params=params) + data = self._session.delete(base_url + function, params=params, timeout=REQUESTS_TIMEOUT) else: - data = self._session.get(base_url + function, params=params) + data = self._session.get(base_url + function, params=params, timeout=REQUESTS_TIMEOUT) except Exception: raise APIError('Unable to connect to Shodan')