提取有效IP和有效ftp地址的程序

2024-09-30 16:26:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我还是个编程新手。我正在尝试编写一个代码,可以在一个文本文件中找到所有有效的IP地址和所有ftp地址,并只将这些地址写入另一个文本文件。我试图提取的信息是在一个相当大且未分类的文件中。以下是该文件中的几行内容,不会让人发疯:

1331903561.260000   CptK3340W66OKHK3Rd  192.168.202.96  43740   192.168.28.103  21  <unknown>
1331905499.220000   Cup8D83JUM166udWb   192.168.202.102 4379    192.168.21.101  21  ftp password@example.com    DELE    ftp://192.168.21.101/.cache/    -   550 /.cache/.ftpduBnga4: Operation not permitted    -   -   -   -   -
1331905499.220000   Cup8D83JUM166udWb   192.168.202.102 4379    192.168.21.101  21  ftp password@example.com    PASV    -   -   -   227 Entering Passive Mode (192,168,21,101,189,111). T   192.168.202.102 192.168.21.101  48495

我的代码提供了我所需要的信息,但我想知道我是否可以使我的输出更清晰。我的输出给我每一个ip在一行用逗号分隔。我想有一个IP每行,使看它更容易

import os
from os import chdir
import re
import socket

chdir("filepath")
x= open('filepath') 

fichip = open('ip.txt', 'w', encoding='utf8')
fichftp = open('ftp.txt', 'w', encoding='utf8')


ipvalide = r"(?:2(?:5[0-5]|[0-4][0-9])|[0-1]?[0-9]{1,2})(?:\.(?:2(?:5[0-5]|[0-4][0-9])|[0-1]?[0-9]{1,2})){3}"
ftpvalide = r"ftp:\/\/(?:2(?:5[0-5]|[0-4][0-9])|[0-1]?[0-9]{1,2})(?:\.(?:2(?:5[0-5]|[0-4][0-9])|[0-1]?[0-9]{1,2})){3}" #(ftp:\/\/)


txt = x.readlines()
ipmatch = re.findall(ipvalide, str(txt))
ftpmatch = re.findall(ftpvalide, str(txt))
in_listip = set(ipmatch) #not to have any duplicates ip
in_listftp = set(ftpmatch)#not to have any duplicates ftp

fichip.write(str(in_listip))

fichftp.write(str(in_listftp))

fichip.close()
fichftp.close()
x.close()

Tags: 代码inimportipretxtclose地址