前言
前段时间看到一个监控Github开源CVE漏洞利用的爬虫,然后最近柚子啊看golang,所以用golang写了以下,准备后面用golang的gin框架写一个简单的网站,来实时监控
详细过程
接口:https://api.github.com/search/repositories?q=CVE-2020&sort=updated
这里其实就是利用的github的搜索,挺简单的,我们通过搜索CVE-year的关键字,将搜索接口返回的数据格式化以下,提取出主要的名称,描述,和仓库地址就可以了
代码
/**
2 * @Author: JsOnGmAX
3 * @Date: 2020/8/5 11:31
4 */
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"time"
)
type Items struct {
Name string `json:"name"`
SvnUrl string `json:"svn_url"`
Description string `json:"description"`
}
type Result struct {
TotalCount int64 `json:"total_count"`
IncompleteResults bool `json:"incomplete_results"`
Items []Items `json:"items"`
}
func CheckErr(err error) {
if err != nil {
log.Fatal(err)
}
}
func main() {
timeNow := time.Now().Year()
UrlIndex := fmt.Sprintf("https://api.github.com/search/repositories?q=CVE-%d&sort=updated",timeNow)
resp, err := http.Get(UrlIndex)
CheckErr(err)
result := Result{}
body, _ := ioutil.ReadAll(resp.Body)
json.Unmarshal([]byte(body), &result)
fmt.Println(fmt.Sprintf("%+v",result))
resp.Body.Close()
}
1 条评论
滴!学生卡!打卡时间:下午5:36:55,请上车的乘客系好安全带~