在 Python 中验证 IP 地址2024 年 8 月 29 日 | 阅读 6 分钟 在本教程中,我们将学习如何使用多种方法在 Python 中验证 IP 地址。这在编写操作系统级别的程序时很有用。如果我们正在开发 Django 或 Flask 的 Web 应用程序,我们可能需要确定用户的 IP 地址是否有效。IP 地址验证对于防止欺诈、为用户提供有针对性的位置服务等至关重要。 让我们简要介绍一下 IP 地址。 什么是 IP (Internet Protocol) 地址?IP 代表互联网协议,它是分配给连接到互联网的每台计算机的唯一地址。它指的是一组规则,这些规则在一定程度上控制着数据如何在互联网上传输。它结合了 DNS 解析和信息从一台计算机到另一台计算机的传输。 IP 地址主要有两种版本 - IPv4 和 IPv6。 IPv4 与 IPv6我们可能熟悉 IPv4 地址。IPv4 由四个数字(每个数字在 0 到 255 之间)组成,用句点分隔。IP 地址格式是一个 32 位数字地址,写成四个十进制数,称为(八进制)。它提供了 43 亿个唯一地址的组合。 示例 - IPv6它是较新的版本,与前一个版本略有不同。它看起来如下。 它使用字母数字字符的组合。它拥有的可用空间数量是 IPv4 地址的两倍多。它是一个 128 位地址空间,结合了 2¹²⁸ 个唯一地址,而 IPv4 允许 43 亿个唯一空间地址。这比 IPv4 多 10²⁸ 倍。 为什么我们需要 IPv6?尽管 IPv4 被称为“版本 4”,但它是第一个被创建的 IP 版本,自互联网发明以来一直存在。当时,工程师们无法想象 43 亿个 IP 地址不足以满足需求。到 2022 年,各种智能手机、笔记本电脑和平板电脑已经使用了约 42.9 亿个地址。 如何在 Python 中验证 IP 地址在本节中,我们将看到各种验证 IP 地址的方法。 方法 - 1 使用 count() 方法让我们理解以下示例 示例 - 输出 Valid IP Address 说明 在上面的代码中,我们使用 **count()** 方法来计算 **. (点)** 分隔符。如果分隔符的计数少于 3,则输入的 IP 地址无效。然后我们检查每个数字在句点之间的范围。如果条件满足,则输入的 IP 地址有效。 这是一个验证 IP 地址的简单示例。 方法 - 2:使用 set()让我们理解以下示例 - 示例 - 输出 Valid Ip address 解释 - 在代码中,我们初始化了一个 count 变量,它计算 IP 地址中 . 点的数量。如果分隔符的计数少于 3,则输入的 IP 地址无效,如果条件为真,则将 set_val 初始化为一个集合。在 set_val 中,我们将 0 到 256 之间的数字作为字符串添加。之后,我们再次初始化 count 变量,并将 temp 初始化为空字符串。for 循环迭代并检查字符串是否不等于点;如果条件为 True,则将该字符串添加到 temp。否则,我们检查字符串是否已存在于 set_val 中;如果为真,则将 count 增加一并清空 temp。 然后我们验证 count;如果它等于四,那么我们有一个有效的 IP 地址。 方法 - 3:使用 ipaddress() 模块Python 带有一个名为 **ipaddress** 的实用模块,可用于验证 IP 地址并对 IP 地址执行一些基本的算术运算。它不会显式地评估 IP 地址是否有效,但我们需要使用一些逻辑来完成它。 它提供了最健壮和安全的方法来确定有效的 IP 地址。它同时支持 IPv4 和 IPv6 地址。 要使用此模块,我们需要将其导入 Python 代码中。 让我们理解下面的例子。 示例 - 输出 The IP address '127.0.0.2.4' is not valid The IP address 127.0.0.0 is valid 使用此模块的优点是它可以验证 IPv4 和 IPv6 地址。 输出 The IP address 2001:db8:75a2::8a2e:340:5625 is valid 使用 Regex 验证 IP在此方法中,我们将使用自定义正则表达式来检查提供的 IP 字符串的形状。Python 提供了 re 库,用于解析和匹配 Regex。 此方法不如 ipaddress 模块高效和健壮;它需要更多的代码行,并且会检查字符串不仅形状正确,而且其中的值在 0 到 255 之间。我们还必须编写两个逻辑来检查 IPv4 和 IPv6 地址。 要验证 IPv4,我们创建匹配 IPv4 地址的 Regex 字符串。让我们理解以下 Regex。 "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" 让我们逐个理解它的组件。
这三个组件构成 IP 地址的一个字节(例如 255.)。现在我们重复这三个组件四次。 我们需要导入 re 模块才能在 Python 中使用 Regex。接下来,我们将使用 **match()** 函数将输入与正则表达式进行匹配。 示例 - 输出 现在让我们实现完整的验证函数。 示例 - 输出 The IP address 127.0.0.1 is valid 结论在本教程中,我们学习了各种验证 IP 地址的方法,包括内置的 ipaddress 模块。我们了解了 IPv4 与 IPv6 地址的不同之处以及为什么我们需要 IPv6 地址。您可以轻松找到您系统上的当前 IP 地址。打开设备设置,然后打开系统偏好设置 > 网络 > 根据您的连接选择 WiFi 或以太网。 |
为什么为本项目使用 Python?多年来,Python 在数据科学领域赢得了超级巨星的地位。所有数据爱好者都喜爱它,它为统计科学和机器学习提供了简单的入门。对于具有挑战性的数据科学项目,有许多内置库,它们是...
阅读 17 分钟
PyGTK 是 GTK+ (GIMP Toolkit) 图形用户界面库的 Python 绑定。它提供了一套强大而灵活的工具,用于为桌面应用程序创建跨平台图形用户界面 (GUI)。在本文中,我们将探讨 PyGTK 的特性以及如何...
5 分钟阅读
Python 中“==”和“is”运算符的区别 在 Python 中比较对象时,身份运算符通常用于应使用相等运算符 == 的地方。在实践中,在尝试比较数据时使用 is 很少是一个好主意。身份运算符...
阅读 3 分钟
在本文中,我们将使用 Python 自动化发送 Instagram 消息的操作。首先,让我们看看 Instagram 是什么。Instagram 是一个著名的社交媒体平台,专注于照片和视频共享。它自 2010 年开始运营,并一直保持...
阅读 19 分钟
Python 是最广泛使用的编程语言之一。凭借其易于理解的语法、高效率和一流的开源库,我们可以用 Python 做任何事情。然而,我们可能已经注意到,有些人喜欢 Python 2,而另一些人则喜欢 Python 3。两者之间的区别是...
阅读 2 分钟
银行账号是金融机构用于识别特定账户的唯一标识符。验证银行账号对于确保金融交易的准确性和效率至关重要。本文将讨论如何使用……验证银行账号。
阅读 3 分钟
在 Python 中查找大元素 在这个问题中,我们将得到一个整数数组,我们必须为数组中每个元素的每个元素找到大元素。大元素是其右侧的第一个元素...
阅读 10 分钟
在本文中,我们将讨论 Python 中的 Wikipedia 模块,并讨论如何使用 Python 脚本利用 Wikipedia 模块。我们将从 Wikipedia 获取大量信息。引言 互联网是信息最重要的来源。所有知识都只是...
阅读 6 分钟
这篇文章将演示如何使用 PyQt5 构建一个颜色游戏。在这个游戏中,玩家必须正确识别所给单词的颜色,以获得最高分。为了进一步迷惑玩家,文本将有多种...
阅读 8 分钟
在本教程中,我们将学习一些每个 Python 开发人员都应该知道的令人惊叹的 Python 装饰器。这些装饰器将帮助将代码提升到一个新的水平,并用更少的代码做更多的事情。正如我们所知,Python 装饰器是一个强大的工具,它有助于...
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India