1. 程式人生 > >censys獲取到ip和端口

censys獲取到ip和端口

red dumps int In xxx AD 雙引號 取數據 request

目標是獲取到ip和端口,以 ip:port的形式保存。由於我幾乎不會python,用的方法比較愚蠢。

利用官方接口獲取到數據

import sys
import json
import requests

API_URL = "https://www.censys.io/api/v1"
UID = "xxxxxxxxxxxxxxxxx"
SECRET = "xxxxxxxxxxxxxxx"

data = {
    "query": "data",
    "page": 1,
    "fields": ["ip", "protocols"]
}

res = requests.post(API_URL + "/search/ipv4", data=json.dumps(data), auth=(UID, SECRET))
results = res.json()
if res.status_code != 200:
    print("error occurred: %s" % results["error"])
    sys.exit(1)
for result in results["results"]:
    f = open("ip.txt", "a+")
    f.write(result+"\n")
    print(result)

獲取到的數據是不規則的json,在前後加上 "[" 和 "]" 以後,把單引號換成雙引號

import json

f = open("ip.txt")
fi = open("final.txt", "a+")
result = json.load(f)
for i in result:
    port = i[‘protocols‘][0]
    r = i[‘ip‘] + ":" + port.split("/")[0] + "\n"
    fi.write(r)
    print(r)
fi.close()
f.close()


json.load,加載json格式的文件。

讀取數據的時候,獲取的不全是string類型,也有數據類型,比如端口。

censys獲取到ip和端口