让我们看看如何使用 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 地址相关推荐

  1. 如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址

    作为系统管理员,您需要密切关注访问您网站的 IP 地址.服务器日志是此类信息的有用来源.它们包含您的服务器收到的每个请求的 IP 地址.日期时间.请求类型.URL.服务器响应等.在本文中,我们将了解如 ...

  2. 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] ...

  3. 运用awk提取日志文件中的IP地址

    在我们的日常工作中,可能会遇到各种不同的问题,有来自内部,有的来自外部. 以Nginx服务为例,服务上线之后可能会遭受非法的流量攻击,我们在配置Nginx服务时可以通过Nginx.conf配置文件中的 ...

  4. 字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...

    c语言中的单引号和双引号可是有很大区别的,使用之前一定要了解他们之间到底有什么不同,下面小编就给大家详细的介绍一下吧,对此还不是很了解的朋友可以过来参考下 问题:从c++文件中将std:string转 ...

  5. 【C语言】从字符串中提取IP地址最简洁的方法

    首先先看一下判断字符串是否为IP地址(IPv4地址是否合法)的方法: ([C语言]判断字符串是否为IP地址(IPv4地址是否合法)) #include <stdio.h> #include ...

  6. 张坤 2012.5.4 egrep在文件中找IP地址

    作者:2010级嵌入式  张坤 [root@localhost 桌面]# cat aaa.txt 192.168.1.1 1234.234.04.08 123.1234.045.678 asdfasd ...

  7. python从文件中提取特定文本_python利用正则表达式提取文本中特定内容

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  8. 字符串中提取IP地址

    // 带端口号的IP地址 QStringList getIpAddressAndPort(const QString & strText) {QStringList strList;QRegE ...

  9. python从文件中提取特定文本_使用Python从HTML文件中提取文本

    我发现最好的一段代码用于提取文本,而不需要javascript或不需要的东西:import urllibfrom bs4 import BeautifulSoupurl = "http:// ...

最新文章

  1. Codeforces 955C Sad powers(数论)
  2. linux history 命令 shell历史记录显示 HISTSIZE
  3. 苹果发布被拒绝的种种惨剧
  4. python编程的条件语句_Python 条件语句
  5. javascript中构造函数的说明
  6. IIS不能下载ini文件
  7. mysql 环形主从_【每日一博】MySQL 互为主从(环形结构)_MySQL
  8. 初探Linux内核态——通过proc文件系统作快速问题定位
  9. java 事务控制_java中事务的管理
  10. Java小游戏:飞翔的小鸟 【附源码和素材】
  11. c语言中的output用法,OUTPUT 子句
  12. 新手必备:网关与网段、IP协议、主机与DNS 、访问控制 资料汇总110篇
  13. 软件配置管理岗位职责说明
  14. php学习(三):近几年来,不断发展的ThinkPhp框架(TP6)
  15. 疯狂Java讲义中的程序,使用代理服务器来获取网上的资源
  16. Firefox设置谷粉搜搜为默认搜索引擎的方法
  17. 红米k40和红米k40pro的区别 哪个好
  18. Ubuntu安装cuckoo
  19. SQL 删除替换字符串中第一次出现的指定字符
  20. php7 vcruntime140.dll,PHP 7:缺少VCRUNTIME140.dll

热门文章

  1. 进程锁、事件、进程队列、进程间共享数据、生产者消费者模型
  2. 超详细!构建基于客户细分的 K-Means 聚类算法
  3. 本周AI热点回顾:「时空版」Transformer训练速度远超3D CNN;拒绝内卷的AI狼火了!不想抓羊只想躺!...
  4. Cubic interpolation
  5. AD(altium designer)15原理图与PCB设计教程(十)——信号完整性分析
  6. 等效于35mm相机焦距的计算方法
  7. uboot源码中start.S里中断向量表中不直接LDR   PC ,异常地址,而是使用一个标号
  8. 获取网易云音乐开放接口api的推荐歌单
  9. PHP中文转换为数组,PHP文本处理之中文汉字字符串转换为数组
  10. 想想五年后的你,什么工作值得你去拼命? 转~ 推迟满足感 成长比成功重要