【信息收集】用python判断目标地址开放端口号(一)


一、调用socket库

import socket

def get_port(domain):
    ports = [21, 22, 23, 25, 53, 69, 79, 80, 88, 110, 113, 220, 443, 3306]
    open_list = []
    for port in ports:
        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # ipv4,tcp通信
        server.settimeout(3)  # 超过3,断定端口关闭
        result = server.connect_ex((domain, port))  # 尝试连接
        if result == 0:  # 连接成功返回0
            print(str(port) + "-->open")
            open_list.append(port)
        else:
            print(str(port) + "-->close")
    return open_list

if __name__ == '__main__':
    get_port("192.168.137.129")

返回结果:
在这里插入图片描述

二、调用API

def sd(domain):
    myaddr = socket.getaddrinfo(domain, 'http')
    dst_ip = myaddr[0][4][0]
    api = shodan.Shodan('xxxxxxxxxxxxxxxxxx')
    res = api.host(dst_ip, history=False)
    port = str(res['ports'])  # 返回该IP开放的端口号列表
    print(port)
  
if __name__ == '__main__':
    sd("jd.com")

返回结果:
该处使用的url网络请求的数据。
获取API-key:
访问:s h o d a n . i o ,并复制API KEY
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微雨停了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值