如何在Python中构建Ping Sweeper
Python 是一种通用的编程语言,可用于编写不同类型的 GUI 和基于 CLI 的应用程序。 如果您是 Python 新手,没有比从事小型项目更好的方法来加强您的学习了。
一个很棒的 Python 项目示例是一个 ping 扫描器,它是一个检查网络主机的小实用程序。 该脚本将涵盖基本的编程概念,包括打印语句、循环和函数。
推荐:如何使用Python构建翻译器
什么是Ping Sweeper
ping 扫描器是一个程序,它接受网络地址作为输入,ping 网络中的主机,并输出死活主机列表。 这是一种估算网络中在线主机数量并找出它们的 IPv4 地址的简单方法。
作为初学者,创建一个 ping 扫描器是复习 Python 基础知识的好方法。 这个动手小项目还将刷新您对网络基础知识的理解。
Ping Sweeper 的先决条件
在开始开发过程之前,您应该确保您的系统上安装了最新版本的 Python。
通过在命令提示符(对于 Windows 用户)或终端(对于 UNIX/Linux 系统)中键入此命令并点击来检查您是否可以运行 Python 进入:
python --version
在某些系统上,您可能需要运行:
python3 --version
此命令应返回系统上安装的 Python 版本。 如果它返回类似“python not found”的错误,您应该安装 Python3,然后继续执行以下步骤。
编码 Ping Sweeper
有多种方法可以构建此脚本。 有些会要求您安装和导入几个模块。 在这里,您将采用一种极简主义的方法,除了关键的之外没有外部依赖项 操作系统模块.
在开始编码之前,分解需求以更好地了解您需要实现哪些功能。 该脚本分为三个部分:
- 接受输入的 IP 地址。
- 从 IP 地址中提取网络 ID。
- 遍历网络中的所有主机并打印主机是死是活。
现在您已经清楚地了解了工作流程,让我们开始编程。
接受和处理输入
脚本的第一部分处理接受来自用户的输入并将 IPv4 地址减少到它的前三个八位字节。 这为我们提供了网络 ID:
import os
IP = input(“[+] Enter the Host IP Address:\t”)
print(“[+] Starting Ping Sweeper on ” + IP)
dot = IP.rfind(“.”)
IP = IP[0:dot + 1]这 输入() 函数接受用户输入。 您可以使用字符串的 rfind() 方法提取最后一次出现小数点的索引并将其存储在 点 多变的。 通过保留从输入到最右边出现小数点的所有内容来跟进它。
推荐:WordPress Dark Mode Ultimate插件
扫描主机并打印主机状态
您已从输入 IP 派生网络地址。 您现在可以遍历最终 IPv4 八位字节的所有可能值:1–254。 在 for 循环中,将新 IP 存储在 主持人 多变的。 此 IP 是基础 IP,后跟迭代器变量的值。 然后,使用 os.system() 运行方法 平 命令反对 主持人 多变的。
for i in range(1, 255):
host = IP + str(i)
response = os.system("ping -c 1 -w 1 " + host + " >/dev/null")
if response == 0:
print(host + ” is up”)
else:
print(host + ” is down”)
测试 回复 值对 0 来确定主机的状态并决定它是在线还是离线。 如果 ping 遇到无响应的主机,它会返回一个非零值。 否则,它返回零以指示它可以到达的主机。
您可以添加 C 标志和 w 标志,值为 1,用于原始 ping 命令。 这使得它只发送一个数据包并等待一秒钟来接收响应。 您的 ping 版本可能支持也可能不支持这些选项; 请查阅 ping 手册页进行检查。
您还应该将输出重定向到 /dev/null 隐藏 ping 输出的详细信息。 请注意,ping 和 /dev/null 语法仅与 Unix 或 Linux 系统兼容。 您可以通过替换 C 标志与 n 和 >/开发/空 和 >无.
运行 Ping Sweeper 脚本
您可以在终端中或通过命令提示符运行此脚本。 启动一个终端,移动到脚本的位置并使用 python3 执行它:
cd /directory/sweeper/
python3 sweeper.py
在终端中输入 IPv4 地址或子网,ping 扫描器应该开始工作并返回预期的输出。
有趣的 Python 项目创意
动手学习可以说是学习编程语言的最好和最快的方法。 您从事的项目越多,您就越能掌握概念、培养基本技能并了解如何解决问题。
如果您缺少项目创意,请查看这份精选的 Python 最佳项目创意列表。