shodan - 国家代码python

时间:2018-02-17 19:06:39

标签: python shodan

我想列出我的脚本在python中搜索特定字符串,但我也想在前两个字母中添加国家代码,但是当我尝试时它会说无效KeyError:'country_code',但是api说ocation.country_code我怎么能实现呢?

 #!/usr/bin/python
import shodan
SHODAN_API_KEY="xxxxxxxxxxxxxxxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)

try:
    # Search Shodan
    results = api.search('ProFTPd-1.3.3c')

    # Show the results
    for result in results['matches']:
        print '%s' % result['ip_str']
        print '%s' % result['country_code']

except shodan.APIError, e:
        print 'Error: %s' % e

1 个答案:

答案 0 :(得分:1)

我认为这是您在Python中使用的方法 https://github.com/achillean/shodan-python/blob/master/shodan/client.py#L324 并触发:

return self._request('/shodan/host/search', args)

Shodan API文档: https://developer.shodan.io/api 查看 / shodan / host / search API

我刚刚看到答案在你的问题中,但你吃了一个来自地点的信(ocation)。

试试这个:

print '%s' % result['location']['country_code']

所以你正在寻找的领域,但它在另一本字典中。

我建议下次好好阅读API文档,正如Nofal Daud所说,如果你在dict上有KeyError意味着字段不在那里,那么Python错误是自我解释的。下次听Python会揭示真相。