我还是个编程新手。我正在尝试编写一个代码,可以在一个文本文件中找到所有有效的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()
目前没有回答
相关问题 更多 >
编程相关推荐