首页
学习
活动
专区
工具
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代码。您可以参考腾讯云云服务器的产品介绍和文档:腾讯云云服务器

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

相关·内容

kaliEttercap(0.8.3.1)GUI界面中文化

如果它是一个A请求,返回IP地址。如果是一个PTR请求,在文件中搜索ip并且这域名被返回(除了那些通配符)。MX请求需要一个精心准备一个特别的应答。...主机通过一个虚假主机’mail.host’来解决并且额外记录包含ip地址。返回一个地址或域名来匹配。要小心这顺序。...它可能是有用检测是否有人使用etercap find_ip搜索子网中未使用IP地址 在目标列表中查找用户指定范围内一个使用IP地址。...您可以使用find_conn确定LANIP地址,然后查找IP。你必须建立主机列表才能使用这个插件,这样你就不能在非恶意模式下使用它。...首先,它会检查列表两个主机是否具有相同 mac 地址。这可能意味着其中一个正在毒害我们假装是另一个。它可能会在代理 arp 环境中产生许多误报。您必须构建主机列表才能执行此检查。

1.4K20
  • Kali Linux 网络扫描秘籍 第二章 探索扫描(二)

    演示中使用主机当前拥有在此端口上运行 Apache 服务。 为此,我们需要构建我们请求每个层级。 要构建第一层是IP层。...将 Scapy 与 Python 结合使用,我们可以快速循环访问/ 24网络范围中所有地址,并向每个系统上一个 TCP 端口发送单个 ACK 数据包。...通过评估每个主机返回响应,我们可以轻易输出活动 IP 地址列表。 #!...如果返回异常,脚本将会跳过。 生成输出是活动目标 IP 地址列表。 此脚本可以使用句号和斜杠,后跟可执行脚本名称执行: root@KaliLinux:~# ....然后这些技术中一个都可以在 Python 脚本中使用,来对多个主机或地址范围执行发现。

    3.4K10

    python模块学习----nmap模块

    安装nmap模块: pip install python_nma nmap模块说明: python-nmap是一个帮助使用nmap端口扫描器python库。...:用于存储和访问主机扫描结果特殊小类 PortScannerYield:通过生成器使用Pythonnmap Process:表示在单独过程中运行活动,应该是控制扫描进程之类 convert_nmap_output_to_encoding...listscan(hosts='127.0.0.1'):不要扫描,但解释目标主机返回一个主机列表 nmap_version():如果检测到返回nmap版本 scan(hosts='127.0.0.1...,则返回true,否则返回False has_udp(port):如果udp端口有info,则返回true,否则返回False hostname():返回用户记录或列表主机一个主机名 hostnames...():返回主机列表 ip(port):返回信息IP端口 sctp(port):返回信息sctp端口 state():返回主机状态 tcp(port):返回tcp端口信息 >>> nm['

    1.3K10

    Kali Linux 网络扫描秘籍 第二章 探索扫描(一)

    ; 在此子网上执行 ARP 扫描,然后根据来自这些 IP 主机响应输出 IP活动列表。...为了在我们脚本中使用这个 IP 地址列表,我们需要在 Python 中执行一些文件处理。 工作脚本示例如下所示: #!...此脚本还可以修改为从输入文件读取,并验证此文件中列出主机是否处于活动状态。 对于以下脚本,你需要拥有 IP 地址列表输入文件。...此操作完成后将执行脚本,并从输入 IP 地址列表返回实时 IP 地址列表使用与前面讨论相同方式,此脚本输出可以通过尖括号轻易重定向到输出文件。...但是,当使用网络地址值执行时,任务序列开始执行,并返回活动 IP 地址列表。 如前面的脚本中所讨论那样,此脚本输出也可以重定向到文本文件,来供将来使用

    3K30

    Python——编写一个叫做find_dups函数,其输入参数为一个整数列表,找出其中出现了两次或两次以上值,并以集合形式返回

    不假思索代码不是好代码,注重解题方式同时,更要学会灵活应用综合技能:以下是本题涉及其他重点知识 可以去除列表重复元素 使用核心方法:列表查重 字符串和列表转化 python如何将列表字符串变成数字...列表转集合(去重) #核心:引入库counter计数重复 from collections import Counter #查重 def find_dups(listnumber): number...listnumber = input("输入重复数字,通过函数去重,并筛选出重复数字(请以空格分隔):").split() # 字符串——整数 listnumber = list...(map(int,listnumber)) #调用查重函数: #注意参数为列表传递是地址 find_dups(listnumber) main() D:\Python_Demo...\homework_2.1\venv\Scripts\python.exe D:/Python_Demo/homework_2.1/homework_11other_02.py 输入重复数字,通过函数去重

    1.6K10

    Graboid蠕虫分析

    攻击者入侵了一个不安全docker守护进程,从Docker Hub中提取恶意docker容器,从C2下载脚本和易受攻击主机列表,并选择下一个目标来传播蠕虫。...4、worm.sh下载文件“ IP”,其中包含2000多个IP列表。这些IP是不安全docker API主机。...图4显示了IP文件中列出2,034台主机位置,其中57.4%IP源自中国,其次是美国13%。在恶意软件使用15台C2服务器中,有14台是列在IP文件中,一台主机中有50多个已知漏洞。...攻击者攻击渗透了这些主机并将其用作C2服务器。 ? 蠕虫模拟 为了更好地了解蠕虫有效性及其整体挖掘能力,我们创建了一个简单Python程序来模拟蠕虫。...由于受感染主机矿工可以随机启动和停止,因此每个矿工仅在65%时间内处于活动状态,每个采矿周期平均持续250秒。

    97940

    Python黑帽子》:原始套接字和流量嗅探

    在某些情况下,你可能会使用Wireshark(http://wireshark.org)监听流量,也可能会使用基于Python解决方案如Scapy。...在本文中,我们将使用原始套接字来访问诸如IP 和ICMP 头等底层网络信息。在下面的例子中,我们只对IP 层和更高层感兴趣,因此我们不会去解码以太网头中信息。...当你发送一个UDP 数据包到主机某个关闭UDP 端口上时,目标主机通常会返回一个ICMP 包指示目标端口不可达。...挑选一个不太可能被使用UDP 端口来确保这种方式有效性是必要,为了达到最大范围覆盖度,我们可以查探多个端口以避免正好将数据发送到活动UDP 服务上。 为什么使用UDP 呢?...在第一个例子中,我们只需设置原始套接字嗅探器,读取一个数据包,然后退出即可。 首先,我们通过构建套接字对象对网络接口上数据包嗅探进行必要参数设置①。

    1.3K20

    官方博文 | Zabbix Agent自动注册

    无需引入超复杂API脚本等,因为有一个称为Zabbix Agent活动注册内置功能。它用于自动将主机添加到Zabbix前端。 ? 动作标签 转到配置>动作。...这是用于配置触发器同一选项卡,但有时用户不会注意到它也可用于自动注册。 ? 有一个下拉菜单,你可以在其中将事件源从触发器切换到自动注册。 主机返回到CLI。...Zabbix Agent配置文件 在文件内部,有一个名为Server参数,这是你Zabbix服务器或 AgentIP或DNS名称。...Agent将接受来自此IP或DNS名称通信,并且通信方向始终是从服务器到 Agent。...你可以在Hostname之后添加任何字符串,并且当 Agent执行活动 Agent注册时,它将使用指定文本作为前端中主机名。但是,在部署大量主机时,每个主机都需要一个唯一主机名。

    73410

    Nmap安全扫描器

    : 任何网络侦察任务第一步就是将一组(有时是巨大IP范围缩减为一组活动或有趣主机。...这些探针目的是征求表明IP地址实际上处于活动状态(正在由主机或网络设备使用响应。在许多网络上,在任何给定时间只有一小部分IP地址处于活动状态。...以下选项控制主机发现: -sL (列表扫描) 列表扫描是主机发现一种简写形式,它列出指定网络中每个主机,而不发送任何数据包到目标主机。...列表扫描是一个很好检查,以确保您拥有适合目标的IP地址。如果主机使用您不认识域名,则值得进一步调查以防止扫描错误公司网络。...与列表扫描一样,将跳过正确主机发现,但是Nmap不会停止并打印目标列表,而是继续执行请求功能,就像每个目标IP处于活动状态一样。

    1.6K40

    Envoy架构概览(3):服务发现

    DNS结果中每个返回IP地址将被视为上游群集中显式主机。这意味着如果查询返回三个IP地址,Envoy将假定集群有三个主机,并且三个主机都应该负载平衡。...但是,并不是严格考虑DNS查询结果,而是假设它们构成整个上游集群,而逻辑DNS集群使用在需要启动新连接时返回一个IP地址。因此,单个逻辑连接池可以包含到各种不同上游主机物理连接。...此服务发现类型适用于必须通过DNS访问大型Web服务。这种服务通常使用循环法DNS来返回许多不同IP地址。通常会为每个查询返回不同结果。...如果在这种情况下使用严格DNS,Envoy会认为集群成员在每个解决时间间隔期间都会发生变化,这会导致连接池,连接循环等消失。相反,使用逻辑DNS,连接保持活动状态,直到它们循环。...原始目标服务发现必须与原始目标负载均衡器一起使用。 服务发现服务(SDS) 服务发现服务是Envoy用来获取集群成员通用REST API。 Lyft通过Python发现服务提供了一个参考实现。

    1.7K50

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

    向僵尸主机发送另一个 SYN+ACK 封包,并求出所返回 RST 响应中最后 IPID 值。如果这个值增加了 1,那么扫描目标上端口关闭。如果增加了 2,那么扫描目标上端口开放。...最后,应该向僵尸主机发送另一个 SYN+ACK 封包,这会返回 RST 封包并再次增加 IPID。增加 2 IPID 表示所有这些事件都发生了,目标端口是开放。...我们将要使用 Scapy 操作这种技巧是识别关闭端口 ICMP 不可达响应。为了向任何给定端口发送 UDP 请求,我们首先需要构建这个请求一些层面,我们需要构建第一层就是 IP 层。...可以使用破折号符号,并且定义最后一个 IP范围,来扫描范围内主机。...每个主机都被扫描来识别是否在 53 端口上运行了 DNS 服务。另一个用于扫描多个主机替代选项,就是使用 IP 地址输入列表

    1.6K30

    渗透测试信息收集工具篇

    工具 在进行了基本域名收集以后,如果能通过主域名得到所有子域名信息,再通过子域名查询其对应主机 IP,这样我们能得到一个较为完整信息。...域名对话框直接输入域名就可以进行扫描了,工具显示比较细致,有域名、解析 ip、cnd 列表、web 服务器和网站状态,这些对于一个安全测试人员,非常重要。如下操作: ? 回显示大部分主要二级域名。...主机发现基本用法: -sL: List Scan 列表扫描,将指定目标的IP列举出来,不进行主机发现。 -sn: Ping Scan 只进行主机发现,不进行端口扫描。...--system-dns: 指定使用系统DNS服务器 --traceroute: 追踪每个路由节点 扫描局域网 192.168.80.1/24 范围内哪些 IP 主机活动。...扫描局域网 192.168.80.100-200 范围内哪些 IP 主机活动。 命令如下: nmap –sP 192.168.80.100-200 ?

    3.4K00

    一文带你了解Python Socket 编程

    前言 Socket又称为套接字,它是所有网络通信基础。网络通信其实就是进程间通信,Socket主要是使用IP地址,协议,端口号来标识一个进程。...('www.baidu.com') #不支持IPV6解析 socket.gethostbyname_ex('www.baidu.com') #返回三元组,(主机名,相同地址其它可用主机列表,IPv4...地址列表) #网络ip地址 socket.gethostbyname(socket.getfqdn(socket.gethostname())) #将ip地址转化为主机名,返回三元组(主机名,相同地址其它可用主机列表...',5434),0) #判断是否支持IPV6 socket.has_ipv6 #返回服务所使用端口号 socket.getservbyname('https','tcp') #第一个参数为服务协议...(name) #返回网卡信息列表(仅限于Unix) socket.if_nameindex() #32位字节存储Ip地址(序列化) socket.inet_aton('127.0.0.1') #

    43310

    IT运维面试问题总结-运维工具、开源应用(Ansible、Ceph、Docker、Apache、Nginx等)

    使用loop使管理员不必编写使用相同模块多个任务。 复杂(嵌套)循环: with_nested键用于嵌套循环,循环在循环中运行。它需要一个包含两个或多个列表列表。...如果一个或多个任务都调用handler程序,它将在剧中所有其他任务完成后运行一次。 因为handler程序是任务,所以可以在handler程序中使用与处理任何其他任务相同模块。...通常,handler程序用于重新启动主机和重新启动服务。 handler程序可以视为非活动任务,只有在使用notify语句显式调用时才会触发这些任务。 12、简述Ansible Block?...容器将不会虚拟出自己网卡,不会配置独有的IP等,而是使用宿主机IP和端口。...Flannel为每个host分配一个subnet,容器从subnet中分配IP,这些IP可以在host间路由,容器间无需使用nat和端口映射即可实现跨主机通信。

    3.6K10

    使用Adidnsdump转储Active Directory DNS

    DNS域传送漏洞是在黑客常用一种漏洞攻击手段。要实现域传送漏洞,就需要一个不安全配置DNS服务器,允许匿名用户传输所有记录并收集有关网络中主机信息。...在大量IP地址上运行EyeWitness等发现工具通常会返回大量默认Apache / IIS页面,因为大多数站点都配置为侦听DNS名称而不是IP地址。...因此,我认为访问ADDNS记录非常有价值。为此我编写了一个可以转储这些DNS记录Adidnsdump。你既可以直接在网络中主机运行它,也可以通过SOCKS隧道利用。...令我惊讶是,早在2013年,就有人开发出可以提取DNS记录PowerShell脚本,但它并没有完全符合我要求,所以我决定用Python编写一个版本,并添加一些选项来枚举比默认情况下更多记录。...所以最好办法是及时检测DNS查询活动出现,通过监控大量DNS查询或启用对DNS区域列表审计可能是一种更好缓解措施。

    1.6K20

    网络配置信息查看命令一览表

    -j host-list 与主机列表一起松散源路由(适用于 IPv4) -w timeout 等待每个回复超时时间(以毫秒为单位) -R 跟踪往返行程路径...(适用于 IPv6) -S srcaddr 要使用源地址(适用于 IPv6) -4 强制使用 IPv4 -6 强制使用 IPv6...: #ls命令不带参数将返回所有的地址和名称服务器列表 ls [-a|d|t type] domain > filename -a:返回别名和正式名称 -d:将返回所有的数据 -t type:根据类型进行赛选...如果指定 inet_addr,则只显示指定计算机 IP 地址和物理地址,如果不止一个网络接口使用 ARP,则显示每个 ARP 表项 -d 删除 inet_addr 指定主机,...Internet 地址,如果不存在,则使用第个适用接口 基础实例: #1.查看和处理ARP缓存,ARP是名字解析意思,负责把一个IP解析成一个物理性MAC地址。

    4.2K32

    代码远程执行主机命令-Paramiko入门

    Paramiko是一个Python实现SSHv2协议库,可以用于在远程服务器上执行命令、上传和下载文件等操作。它使用了加密算法,可以提供安全远程访问。...由于其简单易用API和丰富功能,Paramiko被广泛用于自动化运维和云计算等领域。 1 使用目的 执行远程主机脚本。 发起接口测试以后查询系统日志。...2 Paramiko 安装 使用效果图 demo类 可以看到查询需要用到信息,主要是ip,用户名,密码,端口号 这些我们可以配置到yaml文件里面维护 3 使用yaml文件配置主机连接信息...,所以可以host配置成列表。...大家可以根据自己实际情况在自己项目里使用。 目前我是封装到了我测试类里面,请求和返回之后会根据返回报文解析关键字去主机查询日志,里面再根据json或者xml格式化输出。

    84720

    翻译 | python利用shodan搜集信息

    文中提及部分技术、工具可能带有一定攻击性、仅供安全学习和教学用途,禁止非法使用! 安装 为了开始使用ShodanPython库,首先要确保你已经收到了API密钥。...查找主机 要查看Shodan在特定IP上可用内容,我们可以使用Shodan.host()函数: #查找主机 host = api.host('217.140.75.46') #输出信息 print.../usr/bin/env python # # shodan_ips.py #搜索SHODAN并打印与查询匹配IP列表# # Author: achillean import shodan import...这意味着大规模实时数据消耗。 此脚本适用于具有订阅API计划的人员! 默认情况下,Streaming API只返回Shodan收集数据1%。.../usr/bin/env python # # cert-stream.py # Shodan正在收集SSL证书 # #警告:此脚本适用于拥有订阅API计划的人员!

    1.3K110
    领券