关于shodan的安装和使用,传送门——> 渗透测试之Shodan的安装和使用

常用 Shodan 库函数

  • shodan.Shodan(key) :初始化连接API
  • Shodan.count(query, facets=None):返回查询结果数量
  • Shodan.host(ip, history=False):返回一个IP的详细信息
  • Shodan.ports():返回Shodan可查询的端口号
  • Shodan.protocols():返回Shodan可查询的协议
  • Shodan.services():返回Shodan可查询的服务
  • Shodan.queries(page=1, sort='timestamp', order='desc'):查询其他用户分享的查询规则
  • Shodan.scan(ips, force=False):使用Shodan进行扫描,ips可以为字符或字典类型
  • Shodan.search(query, page=1, limit=None, offset=None, facets=None, minify=True): 查询Shodan数据

先写一个简单的脚本,扫描 apache 的主机

import shodan    #导入shodan库
api=shodan.Shodan("cB9sXwb7l95ZhSJaNgcaO7NQpkzfhQVM")  #指定API_KEY,返回句柄
try:results=api.search('apache')    #搜索apache,返回 JSON格式的数据print(results)print("Results found:%s"%results['total'])for result in results['matches']:print(result['ip_str'])     #打印出ip地址
except shoadn.APIError,e:print("Error:%s"%e)

返回的JSON格式的数据

{'total': 8669969,'matches': [{'data': 'HTTP/1.0 200 OK\r\nDate: Mon, 08 Nov 2010 05:09:59 GMT\r\nSer...','hostnames': ['pl4t1n.de'],'ip': 3579573318,'ip_str': '89.110.147.239','os': 'FreeBSD 4.4','port': 80,'timestamp': '2014-01-15T05:49:56.283713'},...]
}

我们也可以加上端口号,并且写入文件中,作为访问链接

import shodanapi=shodan.Shodan("cB9sXwb7l95ZhSJaNgcaO7NQpkzfhQVM")
def FindTarget():try:f=open("target.txt","w")results=api.search('JAWS/1.0') print("Results found:%s"%results['total'])for result in results['matches']:url=result['ip_str']+":"+str(result['port'])print(url) f.write(url)f.write("\n")f.close()except shodan.APIError,e:print("Error:%s"%e)
FindTarget()

Python中shodan模块的使用相关推荐

  1. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

  2. python中Scipy模块求取积分

    python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...

  3. python中的time库安装步骤-python中time模块需要安装么

    time是python自带的模块,用于处理时间问题,提供了一系列的操作时间的函数. time模块中时间表现的格式主要有三种:(推荐学习:Python视频教程) timestamp时间戳,是以秒表示从& ...

  4. 关于python中requests模块导入问题-python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  5. python哪里下载import包-详解python中的模块及包导入

    python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函数 ...

  6. python中copy模块的使用,深拷贝和浅拷贝

    python中copy模块的使用,深拷贝和浅拷贝 文章目录: 一.copy模块的介绍 1.copy模块 二.copy模块的使用 拓展说明: 1.id( )函数的使用 2.is和== 的区别 pytho ...

  7. python中的模块和包

    模块 一 什么是模块 模块就是一组功能的集合体,可以通过导入模块来复用模块的功能. 比如我在同一个文件夹定义两个.py文件,分别命名为A.py和B.py,那么可以通过在A文件里通过import B来使 ...

  8. python中pyecharts模块全局配置_python中pyecharts模块的使用示例

    python中pyecharts模块的使用示例 发布时间:2020-11-24 09:28:53 来源:亿速云 阅读:66 作者:小新 小编给大家分享一下python中pyecharts模块的使用示例 ...

  9. Python中collections模块

    目录 Python中collections模块:模块实现了特定目标的容器,以提供Python标准内建容器 dict.list.set.tuple 的替代选择. Counter:字典的子类,提供了可哈希 ...

最新文章

  1. not syncing : corrupted stack end detected inside scheduler解决办法 以及高版本的激活码!
  2. Linux监控进程的iops,linux性能监控工具--Collectl
  3. 基于模糊控制的自平衡小车的研究
  4. exit()、_Exit() 和 _exit() 函数的区别和联系
  5. 微信小程序电商系统省市区选择器(二)
  6. centos php7.0 mysql_CentOS 7.3 下 安装LNMP(Nginx1.10+MySQL5.7+PHP7.0.20)
  7. mysql报错1172该怎样解决_ORA-01172、ORA-01151错误处理
  8. 玩转mini2440开发板之【制作和修改linux启动logo图片】
  9. Flink – JobManager.submitJob
  10. P4149 [IOI2011]Race
  11. jmeter之-用Firefox录制https协议证书问题
  12. mysql封装执行_解决Mysql封装类执行报错——Mysql::insert() should not be called
  13. 云原生数据库崛起,阿里云POLARDB当选世界互联网领先科技成果
  14. python 定义变量_python-003-变量
  15. PowerShell实现“机器人定时在企业微信群中发送消息”功能(下)
  16. C++--第17课 - 继承与多态 - 上
  17. WinHTTP实现文件下载 C++程序
  18. 基于Arduino的学习、记忆机械手
  19. 阿里云携手开源中国众包平台发布百万悬赏项目
  20. 计算机桌面死机的原因是,电脑屏幕死机了怎么办

热门文章

  1. android runtime异常,E / AndroidRuntime:致命错误:主要
  2. Hybird-untag
  3. 【C#】001.类和对象
  4. 数据分析报告个人经验 (学校教师评价)
  5. Android自定义控件动态显示时间 年月日 时分秒
  6. mysql decimal类型详解
  7. HttpClient的使用
  8. php漏洞注入,cmseasy 无限制报错注入(php函数的坑)
  9. 克隆模式java_java基础之----23种设计模式(克隆模式)
  10. android打造独一无二的loading动画效果