当我尝试在 Python 中使用 Shodan API 搜索某些过滤器时,我只会收到错误消息。当我搜索单词作为示例时,我没有收到这些错误。我的 Python 代码:
import sys
import shodan
SHODAN_API_KEY = "xxxxxxxxxxxxxxxxxx"
try:
api = shodan.Shodan(SHODAN_API_KEY)
results = api.search("port:21")
print results["total"]
for result in results["matches"]:
print result["ip_str"]+"\n"
except Exception as e:
print("Code: {c}, Message: {m}".format(c=type(e).__name__, m = str(e)))
那么实际的错误是什么?我有一个免费的 Shodan 帐户,当我在网站上搜索“port:21”时,我得到了结果。当我在脚本中执行此操作时,出现错误。
另外我想知道是否有可能通过整个数据库并获得超过 100 个结果。我考虑过使用 CIDR(例如 1.1.1.1/27)只搜索 100 以下的特殊范围并一遍又一遍地进行。但这甚至可能吗?或者有更有效的方法吗?