Python实现:验证 IP 地址的有效性

用ping验证大量IP地址的有效性 从文件中读入大量ip地址,再判断各个ip是否可ping通 版本1 import os import time import subprocess as sp def ping_test(inputfile, failfile='', successfile=''): ''' read IP input file, ping each, write failed ip 阅读详情

IP是互联网协议的缩写,是分配给每台连接到互联网的计算机的唯一地址。有两个版本的IP地址,名为IPv4 和IPv6 。

IPv4以点阵十进制符号表示,由四个八位数组成,每个八位数包含一个从0到255的数字。IPv6地址包含八组四位十六进制数字,每组代表16位。

冒号分隔各组数字(😃。在本指南中,我们将验证一个IPv4地址。

在 Python 中验证一个 IP 地址

验证一个 IP 地址意味着检查输入的 IP 是否有效。

比如说:

Input: 192.168.52.124
Output: Valid IP address
Input: 656.1.2.3
Output: Invalid IP address

ipaddress 模块

ipaddress 是Python中的一个模块,用于根据IP地址的类型(IPv4或IPv6)来检查和分类。它还执行不同的操作,如算术操作、比较等。

这个模块有一个名为ip_address() 的方法,用于验证一个IP地址。这个函数将一个IP字符串作为输入,如果它能成功地将IP字符串转换为IPv4或IPv6地址的对象,这意味着输入的IP地址是有效的。

否则,它将引发一个数值错误,即该IP似乎不是一个IPv4或IPv6地址。我们在下面的代码中导入了ipaddress 模块,并将整个代码写在try-except 块中。

如果IP是有效的,就不会引发异常,如果不是,值错误异常将由except 块来处理。

案例1:对于有效的IP地址
import ipaddress
try:
    ip = ipaddress.ip_address("192.168.1.1")
    print("Valid IP Address")
except ValueError:
    print("Invalid IP Address")

输出:

Valid IP Address
案例2:对于无效的IP地址
import ipaddress
try:
    ip = ipaddress.ip_address("992.168.1.1")
    print("Valid IP Address")
except ValueError:
    print("Invalid IP Address")

输出:

Invalid IP Address

使用RegEx.search() 方法来验证一个IP地址

另一种验证IP地址的方法是通过正则表达式将其与有效IP地址的预定义模式相匹配。在下面的代码中,我们通过调用re 模块的search() 方法来验证一个 IP 地址,并将正则表达式和 IP 作为一个参数传给它。

如果IP是有效的,该方法返回True 。否则,它将返回False 。

示例代码:

import re
ip = "192.168.2.3"
regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]).){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
if(re.search(regex, ip)):
    print("Valid IP Address")
else:
    print("Invalid IP Address")

输出:

Valid IP Address

手动验证IP地址

我们可以不用任何内置库的正则表达式来验证一个IP地址。我们做了一个函数,在下面的代码中通过检查这三个条件来验证 IP 地址。

如果代码中出现以下任何条件,IP将是无效的True 。

  • 八位数不是四个。
  • 任何一个八位数包含除整数以外的任何东西。
  • 任何一个八位字节内的数字都不在0-255的范围内。

示例代码:

#Python小白学习交流群:711312441
def validate_ip_address(ip):
    octects = ip.split(".")
    if len(octects) != 4:
        return "Invalid IP"
    for number in octects:
        if not isinstance(int(number), int):
            return "Invalid IP"
        if int(number) < 0 or int(number) > 255:
            return "Invalid IP"
    return "Valid IP"
validate_ip_address("192.168.-1.1")

输出:

'Invalid IP'
Python实现IP地址验证器:从基础到增强 本文介绍了使用Python验证IPv4地址的方法,从基础版本逐步扩展到功能完善的增强版。基础版本通过分割字符串、检查段数和数值范围实现基本验证。增强版本添加了重试机制、IP地址类型识别(A-E类)、特殊地址检测(如私有地址、环回地址)和批量验证功能。完整代码整合了这些功能,提供用户友好的交互界面和详细的验证反馈,既适合初学者理解IP验证原理,也能满足实际应用中的复杂需求。 阅读详情

相关推荐

Python和Shell实现的校验IP地址合法性脚本

本文介绍了如何使用Python和Shell脚本来校验IP地址的合法性。这些脚本可以帮助你在网络编程和系统管理中进行IP地址校验,确保输入的IP地址符合规范。你可以根据自己的需求进一步扩展这些脚本,例如将其作为函数库使用,或者在其他脚本中引用。希望这篇文章能对你有所帮助!IP地址是计算机网络中的重要概念,用于标识和定位网络设备。在网络编程和系统管理中,经常需要对输入的IP地址进行合法性校验。本文将介绍如何使用Python和Shell脚本来实现IP地址的合法性校验,并提供相应的源代码。

KkowServer的博客 259

python中利用re模块正则表达式匹配ip地址

python中利用正则表达式匹配ip地址 ip地址的范围为0.0.0.0-255.255.255.255,分成四段,则每段的范围都是0-255,因此,以一段进行分析: 在进行书写匹配规则时,可以将每段的取值分为3个区间。即0-199、200-240、250-255。 其正则匹配的表达式应为: # 匹配 0-255的表达式书写方法 pattern = re.compile(r'([01]?\d?\d|2[0-4]\d|25[0-5])')

shanf7921的博客 3万+

判断IPv4地址是否有效的Python算法实现

我们的目标是编写一个函数,该函数接受一个字符串作为输入,并返回一个布尔值,表示该字符串是否是有效的IPv4地址。首先,它会判断每个部分是否都是合法的数字,即是否由数字组成。然后,函数会将每个部分转换为整数,并判断该整数是否在合法的范围内(0到255)。如果不在范围内,说明IP地址的格式不正确,返回。该函数首先将输入的IP地址按照"."进行分割,得到一个包含四个部分的列表。如果经过上述检查,IP地址的格式和每个部分的取值都是合法的,那么函数将返回。列表的长度不等于4,说明IP地址的格式不正确,直接返回。

DarcyCode的博客 362

Python | 判定IP地址合法性的三种方法

IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法。 IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~255) 正则表达式判定法 最简单的实现方法是构造一个正则表达式。判断用户的输入与正则表达式是否匹配。若匹配则是正确...

weixin_34380296的博客 2527

【LeetCode Python实现】468. 验证IP地址(中等)

想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送,微信随时解答你的疑问 468. 验证IP地址 python3 中等 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1; 同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。 IPv6 地址由8组16进制的数字.

1753

四阶龙格库塔法求解一次常微分方程组(python实现)

之前在博客发布了关于使用四阶龙格库塔方法求解一次常微分方程组的文章,由于代码缺少具体的验证,部分朋友可能存在疑问,因此这里打算再重新写一篇博客来验证一下程序的正确性,另外,这里是使用python语言来实现的。

HelloWorldTM的博客 8543

python,检测代理ip是否有效

python,检测代理ip是否有效 测试环境 python3.6 、window10系统 测试方法 第一种 使用requests模块。 使用requests.get() 发请求,根据其返回的网页内容进行判断,代理ip是否有效。 import requests proxies = {'http': '120.236.128.201:8060', 'https': '1.........

小胖_@的博客 4万+

ElementUI时间选择器(el-date-picker)输入格式的智能转换与动态适配

本文深入探讨了ElementUI时间选择器(el-date-picker)在处理用户自由格式输入时的痛点,并提出了基于Vue自定义指令的智能转换解决方案。该方案通过核心解析函数自动识别如“20231225”等连续数字输入,将其动态转换为标准时间格式,并确保与表单验证兼容,有效提升了后台管理系统的输入效率和用户体验。

weixin_29016833的博客 294

python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例

一个刚结束的笔试题目,简单贴一下吧,下面是具体实现:#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址'''import redef judge_legal_ip(one_str):'''正则匹配方法判断一个字符串是否是合法IP地址'''compile_ip=re.compile('^((25[0-5]|...

weixin_39759989的博客 413

手机如何高效辅助林业调查

手机如何高效辅助林业调查 很多林业工作者将栅格类型的地形图处理后导入平板电脑,在林地使用平板电脑加载小班矢量图,辅助林业调查。但是,如果没有地形图底图,这种方法可能就有难度,而且最重要的是,大部分林地工作者没有能力配置平板电脑。大凡林业基层工作者在林地调查时,除调查记录本等部分纸质材料外,都必然携带手机和水杯,此外其他设备已经成为累赘,尤其是炎热的夏季在杂灌丛生的林地进行调查作业。因此,使用手机...

xu780820的博客 3078

SPSS 多重共线性问题:编程解决方案

多重共线性会导致回归模型的不稳定性,使得估计的回归系数失去解释力,降低模型的准确性和可靠性。通过执行这些代码,你将能够计算和查看VIF和CI的结果,并确定是否存在多重共线性问题。上述代码执行了一个回归分析,其中A是我们感兴趣的因变量,B、C、D和E是我们要检查的自变量。接下来,我们将执行多重共线性的检测。通过执行上述代码,你将能够看到每个自变量的VIF和CI值,以及预先设置的阈值。上述代码将计算VIF和CI的值,并将结果写入指定路径的结果文件中。接下来,我们可以使用以下代码来计算和显示VIF和CI的值。

CyberGenius的博客 1426

python 正则验证 IP地址与MAC地址

#coding=utf-8 import re def isValidIp(ip): if re.match(r"^\s*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s*$", ip): return True return False def isValidMac(mac): if re.match(r"^\s*([0-9a-fA-

linjinniang的专栏 8919

黑猫带你学Nand第8篇:NandFlash的供电情况详解

是指在任何工作条件下,设备允许的最大电压、电流、功率以及温度等参数的界限值。

黑猫奥利奥的博客 1150

python检查IP地址正确性

一、自动动手,丰衣足食 #encoding=utf-8 import os,sys def check_ip(ipaddr): addr = ipaddr.strip().split('.') #切割IP地址为一个列表 #print addr if len(addr) != 4: #切割后列表必须有4个参数 print "check...

weixin_30586257的博客 495

极智AI | 算能SC5+智算卡驱动安装与升级

大家好,我是极智视界,本文介绍一下 算能SC5+智算卡驱动安装与升级

极智视界 1277

详解FreeRTOS:低功耗Tickless模式(高级篇—7)

FreeRTOS提供了一个叫做Tickless的低功耗模式,本篇博文我们就来学习一下如何使用这个Tickless模式。

不脱发的程序猿 1899

python合法的字符串_python实现判断一个字符串是否是合法IP地址的示例

一个刚结束的笔试题目,简单贴一下吧,下面是具体实现:#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址'''import redef judge_legal_ip(one_str):'''正则匹配方法判断一个字符串是否是合法IP地址'''compile_ip=re.compile('^((25[0-5]|...

weixin_36307713的博客 352

少儿学编程系列--使用递归画出龙形曲线DragonCurve

龙形曲线(Dragon Curve) 龙形曲线(Dragon Curve)又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名 使用黄金比例画龙形曲线 根据黄金比例画一条龙曲线。每次递归,第一步向左转32.89度,移动0.74倍原距离;第二个递归步骤向右转46.99度,移动原来距离的0.55倍。请查看这个网页(https://larryriddle.agnesscott.org/ifs/heighway/goldenDragon.htm)了解关于龙形黄线数学的细节 龙形曲线效果 .

penriver的博客 2299

python判断ip地址是否合法_使用Python判断IP地址合法性的方法实例

一、使用方法和执行效果请看图:二、python实现代码:[root@yang python]# vi check_ip.py#!/usr/bin/pythonimport os,sysdef check_ip(ipaddr):import sysaddr=ipaddr.strip().split('.') #切割IP地址为一个列表#print addrif len(addr) ...

weixin_39724287的博客 98

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

给你一个字符串,你怎么判断是不是ip地址

IP的格式:(1-255).(0-255).(0-255).(0-255) #_*_ coding:utf-8 _*_ import re def ipJudeg(ip): """ 2021/10/25 判断字符串是否符合ip地址规则 :param ip: :return: """ if '.' not in ip : return False elif len(re.findall('\.',ip))!=3: #可直接coun

jibaicha的博客 471

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Python中requests模块对代理IP的有效性验证

#!/usr/bin/env python # coding=utf-8 # 代理IP验证有效性 # https://www.xicidaili.com/nn/ # https://www.kuaidaili.com/free/inha/1/ import urllib.request import threading def isActiveProxy(): url = "htt...

執筆冩回憶 1435

Python爬虫:自建IP地址池

使用工具及网站: 网站:快代理 python版本:3.8.2 IDE:PyCharm Community Edition 2020.1 x64 新手(也包括我????)在练习爬虫时总会拿一些网站来练手,不过,遇到某些网站,爬取过多可能会封掉你的 IP ,这可就麻烦了,所以构建自己的 IP地址池 时很重要的。 首先分析一下 快代理 网站: 通过查看网页源代码可以知道,该网站时一个静态网站,对于我们所要寻找的内容,都可以在网站的源代码中找到。 步骤: 首先,将我们所需的基本库全部导入: import re

高智商白痴 1万+

python学习之二 代理ip有效性验证

验证代码Demo # -*- coding: utf-8 -*- import requests def gitIp(): ipList=[] with open("../../proxies.txt", "r") as f: ipList=f.read().split("\n") # print ipList # print "---

袁军伟的博客 3万+

用python验证IP地址

1 问题如何用python验证IP地址。给定一个字符串queryIP。如果是有效的IPv4地址,返回"IPv4";如果是有效的IPv6地址,返回“IPv6”;如果不是上述类型的IP地址,返回“Neither"。有效的IPv4地址是“x1.x2.X3.×4”形式的IP地址;其中0<=Xi<=255且Xi不能包含前导零。一个有效的IPv6地址是一个格式为“x1:x2:x3:x4:x5:x...

算法与编程之美 682

Python 验证 IP 地址

IP 代表互联网协议,是分配给每台连接到互联网的计算机的唯一地址。IP 地址有两个版本,即 IPv4 和 IPv6。IPv4 采用点分十进制表示法,由 4 个八位位组组成,每个八位位组包含 0 到 255 之间的数字。IPv6 地址包含 8 组,每组 4 个十六进制数字,每组代表 16 位。冒号分隔组 (😃。在本指南中,我们将验证 IPv4 地址。

迹忆客 1136

基于Python实现IP地址验证程序

Python 3.x这是一个简单的Python程序,用于验证用户输入的IP地址是否格式正确。程序通过分割输入的字符串并检查每个部分,确保它们是有效的数字并且符合IP地址的规则。代码结构简单,易于理解和修改,适合作为Python初学者的练习项目,也适用于需要快速验证IP地址的场景。

程序熊的博客 606
上一篇: 用Python从URL中提取域名的方法
下一篇: Python中使用内存缓存
Python热爱者
博客等级 码龄7年 3057粉丝 1330原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值