これらの SHODAN ドキュメントを見ると、スクリプトを実行したときに最初のポートの詳細しか返されない理由がよくわかりません。Web インターフェイスを見ると、一部のデバイスで複数のポート/サービスが検出されていることがわかります...
http://shodan.readthedocs.io/en/latest/tutorial.html#connect-to-the-api
#!/usr/bin/python
import shodan
SHODAN_API_KEY = "xxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)
try:
results = api.search('ics country:"US"')
for item in results['matches']:
print """
Port: %s
Banner: %s
""" % (item['port'], item['data'])
except shodan.APIError, e:
print 'Error: %s' % e