目标是获取到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类型,也有数据类型,比如端口。