首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Python构建一个IP sacanner,返回活动主机的列表。仅返回一个主机

使用Python构建IP scanner,可以通过使用socket模块来实现。以下是一个示例代码,用于扫描给定IP地址范围内的活动主机,并返回一个主机的列表。

代码语言:txt
复制
import socket

def scan_ip(ip):
    try:
        # 创建一个套接字
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)  # 设置套接字超时时间

        # 尝试连接IP地址的80端口(可以根据需求更改)
        result = s.connect_ex((ip, 80))

        # 如果返回0,则表示主机的80端口是开放的,即主机是活动的
        if result == 0:
            return ip

    except Exception as e:
        pass

    finally:
        s.close()  # 关闭套接字

    return None

def ip_scanner(start_ip, end_ip):
    active_hosts = []
    ip_parts = start_ip.split('.')  # 拆分IP地址的各个部分
    base_ip = ip_parts[:-1]  # IP地址的前三个部分

    # 遍历IP范围内的所有地址
    for i in range(int(ip_parts[-1]), int(end_ip.split('.')[-1])+1):
        ip = '.'.join(base_ip + [str(i)])
        active_host = scan_ip(ip)
        if active_host:
            active_hosts.append(active_host)
            break  # 返回第一个活动主机的IP地址

    return active_hosts

# 输入起始和结束IP地址范围
start_ip = '192.168.1.1'
end_ip = '192.168.1.255'

# 扫描活动主机
active_hosts = ip_scanner(start_ip, end_ip)
print(active_hosts)

以上代码使用socket模块创建套接字,并尝试连接给定IP地址的80端口。如果连接成功,则表示主机是活动的,将该IP地址添加到活动主机列表中。最后,返回一个主机的列表。请注意,代码中的超时时间可以根据需要进行调整。

这个IP scanner的应用场景包括网络管理、系统管理、安全测试等领域。对于推荐的腾讯云相关产品,可以考虑使用腾讯云的云服务器(CVM)来托管和运行Python代码。您可以参考腾讯云云服务器的产品介绍和文档:腾讯云云服务器

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Nmap安全扫描器

    Nmap("网络映射器")是免费开放源代码(许可证)实用程序,用于网络发现和安全审核。许多系统和网络管理员还发现它对于诸如网络清单,管理服务升级计划以及监视主机或服务正常运行时间之类的任务很有用。Nmap以新颖的方式使用原始IP数据包来确定网络上可用的主机,这些主机提供的服务(应用程序名称和版本),它们正在运行的操作系统(和OS版本),包过滤器/防火墙的类型。正在使用中,还有许多其他特性。它旨在快速扫描大型网络,但可以在单个主机上正常运行。Nmap可在所有主要的计算机操作系统上运行,并且官方二进制程序包可用于Linux,Windows和MacOSX。除了经典的命令行Nmap可执行文件之外,Zenmap),灵活的数据传输,重定向和调试工具(Ncat),用于比较扫描结果的实用程序(Ndiff)以及数据包生成和响应分析工具(Nping)。

    04

    Kali Linux 网络扫描秘籍 第三章 端口扫描(一)

    由于 TCP 是更加常用的传输层协议,使用 UDP 的服务常常被人遗忘。虽然 UDP 服务本质上拥有被忽视的趋势,这些服务可以枚举,用来完全理解任何给定目标的工具面,这相当关键。UDP 扫描通常由挑战性,麻烦,并且消耗时间。这一章的前三个秘籍会涉及如何在 Kali 中使用不同工具执行 UDP 扫描。理解 UDP 扫描可以用两种不同的方式执行相当重要。一种技巧会在第一个秘籍中强调,它仅仅依赖于 ICMP 端口不可达响应。这类型的扫描依赖于任何没有绑定某个服务的 UDP 端口都会返回 ICP 端口不可达响应的假设。所以不返回这种响应就代表拥有服务。虽然这种方法在某些情况下十分高效,在主机不生成端口不可达响应,或者端口不可达响应存在速率限制或被防火墙过滤的情况下,它也会返回不精确的结果。一种替代方式会在第二个和第三个秘籍中讲解,是使用服务特定的探针来尝试请求响应,以表明所预期的服务运行在目标端口上。这个方法非常高效,也非常消耗时间。

    03
    领券