教你使用Python从文件中提取IP地址

 更新时间:2022年07月27日 10:16:07   作者:allway2  
Python提供了高效的高级数据结构,还能简单有效地面向对象编程,下面这篇文章主要给大家介绍了关于如何使用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 addresses
    if result:
        valid.append(line)
 
    # invalid IP addresses
    else:
        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地址

代码如下:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import re
import os

ip_str = os.popen('cat /root/bin/ips').read()
ipList = re.findall( r'[0-9]+(?:\.[0-9]+){3}',ip_str)
print(ipList)

有时候从上游收到的ip地址很多是夹杂其他字符的,比如逗号,分号,中文字符,英文字符等等,需要提取纯粹的ip地址,可以使用这种方式。已经默认给出的字符串包含的都是正确的ip地址。如果想在确认ip地址是否合法,可以对列表ipList进行遍历,剔除不合法的ip元素。

总结

到此这篇关于使用Python从文件中提取IP地址的文章就介绍到这了,更多相关Python提取IP地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pandas实现to_sql将DataFrame保存到数据库中

    pandas实现to_sql将DataFrame保存到数据库中

    这篇文章主要介绍了pandas实现to_sql将DataFrame保存到数据库中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python寻找路径和查找文件路径的示例

    Python寻找路径和查找文件路径的示例

    今天小编就为大家分享一篇Python寻找路径和查找文件路径的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 使用Python实现简单的爬虫框架

    使用Python实现简单的爬虫框架

    爬虫是一种自动获取网页内容的程序,它可以帮助我们从网络上快速收集大量信息。下面我们将学习如何使用 Python 编写一个简单的爬虫框架,感兴趣的可以了解一下
    2023-05-05
  • 对python opencv 添加文字 cv2.putText 的各参数介绍

    对python opencv 添加文字 cv2.putText 的各参数介绍

    今天小编就为大家分享一篇对python opencv 添加文字 cv2.putText 的各参数介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python3发送request请求及查看返回结果实例

    python3发送request请求及查看返回结果实例

    这篇文章主要介绍了python3发送request请求及查看返回结果实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python自定义简单图轴简单实例

    Python自定义简单图轴简单实例

    这篇文章主要介绍了Python自定义简单图轴简单实例,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思

    浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思

    这篇文章主要介绍了pytorch中的nn.Sequential(*net[3: 5])是啥意思,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python 实现局域网远程屏幕截图案例

    Python 实现局域网远程屏幕截图案例

    这篇文章主要介绍了Python 实现局域网远程屏幕截图案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python 爬虫爬取京东ps4售卖情况

    python 爬虫爬取京东ps4售卖情况

    这篇文章主要介绍了python 如何用爬虫爬取京东ps4售卖情况,帮助大家更好的利用python爬取自己想要的数据,感兴趣的朋友可以了解下
    2020-12-12
  • python实现可以断点续传和并发的ftp程序

    python实现可以断点续传和并发的ftp程序

    断点续传和并发是现在很多ftp程序都支持的功能,如果我们用python如何来做断点续传和并发了,今天来看一篇python实现断点续传和并发的ftp程序例子吧,具体如下。
    2016-09-09

最新评论