Python中shodan模块的使用
关于shodan的安装和使用,传送门——> 渗透测试之Shodan的安装和使用
常用 Shodan 库函数
shodan.Shodan(key)
:初始化连接APIShodan.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模块的使用相关推荐
- python sys模块作用_浅谈Python中的模块
模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...
- python中Scipy模块求取积分
python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...
- python中的time库安装步骤-python中time模块需要安装么
time是python自带的模块,用于处理时间问题,提供了一系列的操作时间的函数. time模块中时间表现的格式主要有三种:(推荐学习:Python视频教程) timestamp时间戳,是以秒表示从& ...
- 关于python中requests模块导入问题-python中requests模块的使用方法
本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...
- python哪里下载import包-详解python中的模块及包导入
python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函数 ...
- python中copy模块的使用,深拷贝和浅拷贝
python中copy模块的使用,深拷贝和浅拷贝 文章目录: 一.copy模块的介绍 1.copy模块 二.copy模块的使用 拓展说明: 1.id( )函数的使用 2.is和== 的区别 pytho ...
- python中的模块和包
模块 一 什么是模块 模块就是一组功能的集合体,可以通过导入模块来复用模块的功能. 比如我在同一个文件夹定义两个.py文件,分别命名为A.py和B.py,那么可以通过在A文件里通过import B来使 ...
- python中pyecharts模块全局配置_python中pyecharts模块的使用示例
python中pyecharts模块的使用示例 发布时间:2020-11-24 09:28:53 来源:亿速云 阅读:66 作者:小新 小编给大家分享一下python中pyecharts模块的使用示例 ...
- Python中collections模块
目录 Python中collections模块:模块实现了特定目标的容器,以提供Python标准内建容器 dict.list.set.tuple 的替代选择. Counter:字典的子类,提供了可哈希 ...
最新文章
- not syncing : corrupted stack end detected inside scheduler解决办法 以及高版本的激活码!
- Linux监控进程的iops,linux性能监控工具--Collectl
- 基于模糊控制的自平衡小车的研究
- exit()、_Exit() 和 _exit() 函数的区别和联系
- 微信小程序电商系统省市区选择器(二)
- centos php7.0 mysql_CentOS 7.3 下 安装LNMP(Nginx1.10+MySQL5.7+PHP7.0.20)
- mysql报错1172该怎样解决_ORA-01172、ORA-01151错误处理
- 玩转mini2440开发板之【制作和修改linux启动logo图片】
- Flink – JobManager.submitJob
- P4149 [IOI2011]Race
- jmeter之-用Firefox录制https协议证书问题
- mysql封装执行_解决Mysql封装类执行报错——Mysql::insert() should not be called
- 云原生数据库崛起,阿里云POLARDB当选世界互联网领先科技成果
- python 定义变量_python-003-变量
- PowerShell实现“机器人定时在企业微信群中发送消息”功能(下)
- C++--第17课 - 继承与多态 - 上
- WinHTTP实现文件下载 C++程序
- 基于Arduino的学习、记忆机械手
- 阿里云携手开源中国众包平台发布百万悬赏项目
- 计算机桌面死机的原因是,电脑屏幕死机了怎么办