使用 Python 从文件中提取 IP 地址
让我们看看如何使用 Python 从文件中提取 IP 地址。
算法 :
- 为正则表达式导入 re 模块。
- 使用 open() 函数打开文件。
- 读取文件中的所有行并将它们存储在列表中。
- 声明 IP 地址的模式。正则表达式模式是:
r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'
- 对于列表中的每个元素,使用 search() 函数搜索模式,将 IP 地址存储在列表中。
- 显示包含 IP 地址的列表。
要处理的文件是 test.txt :
test.txt
- 代码
# importing the module
import re# opening and reading the file
with open('f:/test.txt', encoding='utf-8') as fh:fstring = fh.readlines()# declaring the regex pattern for IP addresses
pattern = re.compile(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})')# initializing the list object
lst = []# extracting the IP addresses
for line in fstring:match = pattern.search(line)if match is not None:lst.append(match[0])else:lst.append(None)# displaying the extracted IP addresses
print(lst)
输出 :
上面的 Python 程序显示文件中存在的任何类型的 IP 地址。我们还可以显示有效的IP 地址。
有效 IP 地址的规则:
- 数字应在 0-255 范围内
- 它应该由 4 个以“.”分隔的单元格组成。
有效 IP 地址的正则表达式是:
((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5] |2[0-4][0-9]|[01]?[0-9][0-9]?)
用于有效 IP 的正则表达式说明:
由于我们不能在正则表达式中使用 0-255 范围,我们将其分为 3 组:
- 25[0-5] - 表示从 250 到 255 的数字
- 2[0-4][0-9] – 表示从 200 到 249 的数字
- [01]?[0-9][0-9]?- 表示从 0 到 199 的数字
要处理的文件是 test2.txt :
000.0000.00.00
192.168.1.1
912.465.123.123
192.168.4.164
69.168.4.226
32.89.31.164
67.168.3.227
代码:
# importing the module
import re# opening and reading the file
with open('test2.txt', encoding='utf-8') as fh:string = fh.readlines()# declaring the regex pattern for IP addresses
pattern = re.compile('''((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)''')# initializing the list objects
valid = []
invalid = []# extracting the IP addresses
for line in string:line = line.rstrip()result = pattern.search(line)# valid IP addressesif result:valid.append(line)# invalid IP addresseselse:invalid.append(line)# displaying the IP addresses
print("Valid IPs")
print(valid)
print("Invalid IPs")
print(invalid)
输出 :
"C:\Program Files\Python39\python.exe" C:/Users/Administrator/PycharmProjects/pythonProject8/ExtractIP2.py
Valid IPs
['192.168.1.1', '192.168.4.164', '69.168.4.226', '32.89.31.164', '67.168.3.227']
Invalid IPs
['000.0000.00.00', '912.465.123.123']进程已结束,退出代码为 0
使用 Python 从文件中提取 IP 地址相关推荐
- 如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址
作为系统管理员,您需要密切关注访问您网站的 IP 地址.服务器日志是此类信息的有用来源.它们包含您的服务器收到的每个请求的 IP 地址.日期时间.请求类型.URL.服务器响应等.在本文中,我们将了解如 ...
- python使用正则表达式抽取文件中的IP地址
python使用正则表达式抽取文件中的IP地址 IP正则 r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' 有效IP ((25[0-5]|2[0-4][0-9]|[01] ...
- 运用awk提取日志文件中的IP地址
在我们的日常工作中,可能会遇到各种不同的问题,有来自内部,有的来自外部. 以Nginx服务为例,服务上线之后可能会遭受非法的流量攻击,我们在配置Nginx服务时可以通过Nginx.conf配置文件中的 ...
- 字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...
c语言中的单引号和双引号可是有很大区别的,使用之前一定要了解他们之间到底有什么不同,下面小编就给大家详细的介绍一下吧,对此还不是很了解的朋友可以过来参考下 问题:从c++文件中将std:string转 ...
- 【C语言】从字符串中提取IP地址最简洁的方法
首先先看一下判断字符串是否为IP地址(IPv4地址是否合法)的方法: ([C语言]判断字符串是否为IP地址(IPv4地址是否合法)) #include <stdio.h> #include ...
- 张坤 2012.5.4 egrep在文件中找IP地址
作者:2010级嵌入式 张坤 [root@localhost 桌面]# cat aaa.txt 192.168.1.1 1234.234.04.08 123.1234.045.678 asdfasd ...
- python从文件中提取特定文本_python利用正则表达式提取文本中特定内容
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...
- 字符串中提取IP地址
// 带端口号的IP地址 QStringList getIpAddressAndPort(const QString & strText) {QStringList strList;QRegE ...
- python从文件中提取特定文本_使用Python从HTML文件中提取文本
我发现最好的一段代码用于提取文本,而不需要javascript或不需要的东西:import urllibfrom bs4 import BeautifulSoupurl = "http:// ...
最新文章
- Codeforces 955C Sad powers(数论)
- linux history 命令 shell历史记录显示 HISTSIZE
- 苹果发布被拒绝的种种惨剧
- python编程的条件语句_Python 条件语句
- javascript中构造函数的说明
- IIS不能下载ini文件
- mysql 环形主从_【每日一博】MySQL 互为主从(环形结构)_MySQL
- 初探Linux内核态——通过proc文件系统作快速问题定位
- java 事务控制_java中事务的管理
- Java小游戏:飞翔的小鸟 【附源码和素材】
- c语言中的output用法,OUTPUT 子句
- 新手必备:网关与网段、IP协议、主机与DNS 、访问控制 资料汇总110篇
- 软件配置管理岗位职责说明
- php学习(三):近几年来,不断发展的ThinkPhp框架(TP6)
- 疯狂Java讲义中的程序,使用代理服务器来获取网上的资源
- Firefox设置谷粉搜搜为默认搜索引擎的方法
- 红米k40和红米k40pro的区别 哪个好
- Ubuntu安装cuckoo
- SQL 删除替换字符串中第一次出现的指定字符
- php7 vcruntime140.dll,PHP 7:缺少VCRUNTIME140.dll
热门文章
- 进程锁、事件、进程队列、进程间共享数据、生产者消费者模型
- 超详细!构建基于客户细分的 K-Means 聚类算法
- 本周AI热点回顾:「时空版」Transformer训练速度远超3D CNN;拒绝内卷的AI狼火了!不想抓羊只想躺!...
- Cubic interpolation
- AD(altium designer)15原理图与PCB设计教程(十)——信号完整性分析
- 等效于35mm相机焦距的计算方法
- uboot源码中start.S里中断向量表中不直接LDR PC ,异常地址,而是使用一个标号
- 获取网易云音乐开放接口api的推荐歌单
- PHP中文转换为数组,PHP文本处理之中文汉字字符串转换为数组
- 想想五年后的你,什么工作值得你去拼命? 转~ 推迟满足感 成长比成功重要