API

Api接口也就是所谓的应用程序接口,api接口的全称是Application Program Interface,通过API接口可以实现计算机软件之间的相互通信,开发人员可以通过API接口程序开发应用程序,可以减少编写无用程序,减轻编程任务,API 同时也是一种中间件,为各种不同平台提供数据共享。根据单个或分布式平台上不同软件应用程序间的数据共享性能。

举个例子来说明,就是当你在购物平台上买东西付款之后,商家选择某一快递公司发货,然后你就可以在购物平台上面查看快递的实时进程。购物平台和快递公司都是独立的公司,为什么能够在购物平台看到快递公司的信息呢,这里就是用到了API,当你在查看快递信息的时候,购物平台的内部系统也开始运作,购物平台通过快递公司提供的API接口,可以实时调取快递信息到网站上。除此之外,你还可以在搜索引擎上输入快递的订单号进行查询,只要是通过快递公司的允许别的公司都可以通过快递公司的API接口调取到快递信息。

而API接口平台大多都是用来开发新的应用软件的,这样可以有效的避免因为程序员编写的接口有问题,导致拖延时间,无法在应有的时间内完成软件的编写,但是在有了api接口程序之后,能够帮助开发者提升开发效率,可以大大的缓解这种情况的发生,可以让开发人员更加有效的完成软件的开发工作。能以一种简单的方式实现App里的某个服务已经成为开发者们最好的选择。


子域名扫描脚本

这里借助virustotal.com平台通过接口的形式,根据api返回的结果和形式进行筛选得到子域名
参考:https://developers.virustotal.com/reference#domain-report

import requests
import sys


def main(domain, apikey):
    url = 'https://www.virustotal.com/vtapi/v2/domain/report'
    params = {'apikey': apikey, 'domain': domain}
    try:
        response = requests.get(url, params=params)
        j_data = response.json()
        domains = sorted(j_data['subdomains'])
    except(KeyError):
        print("No domains found for %s" % domain)
        exit(0)
    except(requests.ConnectionError):
        print("Could not connect to www.vitustotal.com", file=sys.stderr)
        exit(1)

    print('[+] A total of %d domain names were found' % len(domains))
    i = 1
    for domain in domains:
        print("[%d] %s" % (i, domain))
        i = i + 1


if __name__ == '__main__':
    domain = input("Please enter a domain: ")
    # domain = 'baidu.com'
    # apikey = input("Please enter a private apikey: ")
    apikey = 'your-apikey'
    main(domain, apikey)

其中apikey需要在virustotal.com平台上注册获取,这里扫描baidu.com,得到100个子域名:
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐