У меня есть файл журнала брандмауэра, который выглядит следующим образом:Синтаксический большой файл журнала - Python
«Нет.», «Время», «Источник», «Пункт назначения», «Протокол», «Info» «1», «0.000000», «172.16.113.168», «172.16.112.50», «TELNET», «Telnet Data ...» «2», «0.000426», «172.16.112.50», «172.16. 113.168 "," TELNET "," Telnet Данные ... " " 3 "," 0.019849 "," 172.16.113.168 "," 172.16.112.50 "," TCP "," 21582> telnet [ACK] Seq = 2Ack = 2 Win = 32120 Len = 0 " " 4 "," 0.530125 "," 172.16.113.168 "," 172.16.112.50 "," TELNET "," Telnet Data ... "" 5 "," 0.530634 " "172.16.112.50", "172.16.113.168", "TELNET", "Telnet данных ..." "6", "0,549962", "172.16.113.168", "172.16.112.50", "TCP", "21582
телнет [ACK] = Seq 3 Ack = 3 Win = 32120 Len = 0"
Я хочу, чтобы иметь возможность запускать файл по его имени (я использую Linux), например.
log1.py logfile.csv (имя программы, за которым следует имя файла журнала) и получить следующий вывод:
$ log1.py logfile.csv Source IP IP протокол назначения графа
0.0.0.0 255.255.255.255 BOOTP 20 0.1.125.174 131.84.1.31 TCP 2 192.168.1.1 172.168.1.2 TCP 100 (............lots more here .....................) Oracle_89:a5:9f 3com_9c:b2:54 ARP 14 Total: 649787
И еще одна очень полезная особенность, которую я хотел бы иметь, когда я запускаю го e с исходным IP-адресом и IP-адресом назначения. Я хотел бы выход смотреть что-то похожее на следующее:
$ log1.py 172.16.112.50 logfile.csv
Source IP Destination IP Protocol Count 172.16.112.50 135.13.216.191 IMF 4 SMTP 53 TCP 43 TELNET 35 (............lots more here .....................) 172.16.112.194 SMTP 7 TCP 42 TELNET 3745 Total: 38369
И, наконец, я хотел бы быть в состоянии указать как IP-адрес источника и назначения IP и адрес и получить следующий вывод:
$ log1.py 172.16.112.50 202.77.162.2 13 packets.csv Источник IP Destination IP Протокол графа
172.16.112.50 202.77.162.213 ICMP 1 Portmap 5 RSH 9 SADMIND 1 TCP 30 TELNET 41 Total: 87
Я младший системный администратор и на самом деле не имеют большой опыт работы с программирования (только HTML) Я начал учиться, однако, я застрял на эту проблему в течение последних 3-х дней здесь является то, что я до сих пор:
# Function for validating IP address is valid or not
def ip_validation(ip_address):
ip_regex= re.match('^[\d]{1,3}[.][\d]{1,3}[.][\d]{1,3}[.][\d]{1,3}$', ip_address)
return ip_regex
def filereader(file_name):
file_dump= open(file_name,'r')
for eachline in file_dump:
line_a= eachline.replace('\"','') # removes all quotes from the file
line_b= line_a.split(',') # Delimate each fild based on ','
src_ip= line_b[2] # Source IP
dst_ip= line_b[3] # Destination IP
prot= line_b[4] # Protocol
eachline= src_ip, dst_ip, prot
itlist.append(eachline)
itlist.sort()
print itlist
Если вы ознакомились с библиотекой 'pandas'; это можно сделать в нескольких строках кода. http://pandas.pydata.org/pandas-docs/version/0.15/tutorials.html – Dilawar