信息收集之后_es日志收集

信息收集之后_es日志收集一.摘要Censys提供了search、view、report、query、export以及data六种API接口。search接口的请求地址是https://www.censys.io/api/

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一.摘要

Censys提供了search、view、report、query、export以及data六种API接口。

search接口的请求地址是https://www.censys.io/api/v1/search/?,其中?的地方可以是ipv4、websites或者certificates,分别代表搜索ipv4主机、网站和证书。我们的POST请求应该是一组包含query、page、fields的json数据,其中query指的是相应的搜索语句;page代表返回的页码,Censys总是返回一页的数据;fields指的是你希望返回值中包含哪些字段,具体包含哪些字段你可以自己去看一下。

 

JSON有两种结构:
  对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构
  数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,”javascript”,”vb”,…]

信息收集之后_es日志收集

二.利用代码

# -*- coding: UTF-8 -*-
#https://www.censys.io/api/v1/search/ipv4
#post:{"query": "keyword", "page": 1, "fields": ["ip", "protocols", "location.country"]}
#query指的是相应的搜索语句;page代表返回的页码;fields指的是你希望返回值中包含哪些字段
import sys
import json
import requests
import time

API_URL = "https://www.censys.io/api/v1"
UID = "85e64536-7534-4177-8c72-9a383bf01f12"
SECRET = "9hCyul4KXJKXieyXeGIFT0lr04rbN9yQ"
page=1
PAGES=2
    
def getIp(page):
    iplist=[]
    data = {
                "query":"keyword", 
                "page":page, 
                "fields":["ip","protocols","location.country"]
            }        
    try:
        res = requests.post(API_URL + "/search/ipv4", data=json.dumps(data), auth=(UID, SECRET))
    except:
        pass
    try:
        results = res.json()
    except:
        pass
    if res.status_code != 200:
        print "error occurred: %s" % results["error"]
        sys.exit(1)
    #print "Total_count:%s" % (results["metadata"]["count"])
    iplist.append("Total_count:%s" % (results["metadata"]["count"]))
    for result in results["results"]:
        #print "%s in %s" % (result["ip"],result["location.country"][0])
        #iplist.append((result["ip"]+':'+i+' in '+result["location.country"][0]))
        for i in result["protocols"]:
            iplist.append(result["ip"]+':'+i+' in '+result["location.country"][0])    
    return iplist
    
if __name__ == '__main__':
    print "start..."
    with open('censys.txt','a') as f:
        while page <= PAGES:
            iplist=(getIp(page))
            print 'page is:'+str(page)
            page += 1
            time.sleep(1)
            for i in iplist:
                f.write(i+'\n')

    
    

首先request请求,post提交data和auth信息,返回json数据包,利用json数据结构找的所需信息,保存并返回一个列表。
主函数判断page大小,不够就调用getIp函数,最后循环写入结果。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166464.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月6日 下午3:16
下一篇 2022年8月6日 下午3:16


相关推荐

  • python多线程的几种方法

    python多线程的几种方法python多线程编程Python多线程编程中常用方法:1、join()方法:如果一个线程或者在函数执行的过程中调用另一个线程,并且希望待其完成操作后才能执行,那么在调用线程的时就可以使用被调线程

    2022年7月3日
    30
  • 3d立体相册,情人节,情侣生日礼物代码适用

    3d立体相册,情人节,情侣生日礼物代码适用

    2021年3月12日
    186
  • TCP报文段的首部格式

    TCP报文段的首部格式nbsp nbsp nbsp nbsp TCP 虽然是面向字节流的 但 TCP 传送的数据单元却是报文段 一个 TCP 报文段分为首部和数据两部分 而 TCP 的全部功能体现在它首部中的各字段的作用 因此 我们需要详细了解一下 TCP 首部各字段的作用 nbsp nbsp nbsp nbsp TCP 报文段首部的前 20 个字节是固定的 下图 后面有 4n 字节是根据需要而增加的选项 n 是整数 因此 TCP 首部的最小长度是 20 字节 首部固定部分各字段意义如下

    2026年3月17日
    4
  • 2021年最全教程!微信小程序开发详解

    2021年最全教程!微信小程序开发详解一 前期准备工作 1 注册微信小程序开发者账号在官网注册页选择小程序注册即可 账号分为个人版和企业版 个人版相对于企业版注册流程更为简单和宽松 企业版注册需要支付认证费用 一般为 300 元 个人版不需要 企业版经过微信官方认证 更具有信誉度 个人版更多只是一个展示的平台 企业版可以作为一个完整的平台 个人版不可以做商业性质的小程序 但是企业版可以 个人版不可以开通微信支付 附近的小程序不显示个人版 只能通过搜索 扫码方式找到 个人版不支持快速获取微信用户的手机号 2 下载微信开发者工具微信平

    2026年3月19日
    2
  • 谷歌创始人是谁_谷歌创始人的故事

    谷歌创始人是谁_谷歌创始人的故事·布林更多的关注。最新一期的《莫斯科新闻》称,如果举世瞩目的诺贝尔奖设有IT奖的话,这位脸上总是挂着招牌式微笑的年轻人注定是该奖项最有竞争力的人选。他创建的Google成为人们使用互联网的一种重要方式,使每个人与很多问题的答案之间只有点击一下鼠标那么远,Google正像当年的甲壳虫乐队那样风靡全球。  谢尔盖·布林出生在前苏联一个犹太人家庭。5岁那年,布林跟随父母一起移民美国,从而开始了他美

    2026年3月11日
    9
  • maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener[通俗易懂]

    maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener[通俗易懂]maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    2022年4月23日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号