Shodan - Python 使用 "Info" 标签的语法

Shodan - Python Syntax to use "Info" Tag

所以我目前正在使用 import shodan 在 Python 中使用 Shodan 编写脚本。 周围的文档不是最好的,所以我想我会把我的问题带到这里。

使用 Shodan CLI 有一个名为 Shodan Info 的命令,它显示您的帐户剩余的搜索信用数。

在查看 Shodan Documentation 时,我可以看到有一个 info() 标签,但每当我使用它时,都会出现错误。

有人知道在 python 脚本中使用 info 来显示帐户拥有的积分数的正确语法吗?

我收到的错误:

ipinfo = shodan.info()
print (ipinfo)

错误

Traceback (most recent call last):
File "C:/Users/XXXX/OneDrive - XXXX/Documents/XX Documents/XXXX/Working 
                                             Segments/ShodanScraper.py", line 8, in <module>
ipinfo = shodan.info()
AttributeError: module 'shodan' has no attribute 'info'

ipinfo = shodan.Shodan(info())
print (ipinfo)

错误

Traceback (most recent call last):
File "C:/Users/XXXX/OneDrive - XXXX/Documents/XXXXDocuments/XXXXXX/Working 
                                             Segments/ShodanScraper.py", line 8, in <module>
ipinfo = shodan.Shodan(info())
NameError: name 'info' is not defined

shodan 没有说明如何使用信息。这是一个如何设置 shodan 信息的简短示例

import shodan
api = shodan.Shodan('YOUR API KEY')

info = api.host('8.8.8.8')
shodan info

您需要实例化 Shodan class 然后您就可以使用它的 Shodan.info() 方法。这是它在官方命令行界面中的样子:

https://github.com/achillean/shodan-python/blob/master/shodan/__main__.py#L364

这是一个打印当前帐户使用信息的简短脚本:

import pprint
import shodan

key = 'YOUR API KEY'
api = shodan.Shodan(key)
results = api.info()
pprint.pprint(results)