У меня есть скрипт python, который извлекает уникальные IP-адреса из файла журнала и отображает их количество, сколько раз эти IP-адреса пинговали код следующим образом.Как узнать, сколько раз конкретный ip появляется в файле журнала?
import sys
def extract_ip(line):
return line.split()[0]
def increase_count(ip_dict, ip_addr):
if ip_addr in ip_dict:
ip_dict[ip_addr] += 1
else:
ip_dict[ip_addr] = 1
def read_ips(infilename):
res_dict = {}
log_file = file(infilename)
for line in log_file:
if line.isspace():
continue
ip_addr = extract_ip(line)
increase_count(res_dict, ip_addr)
return res_dict
def write_ips(outfilename, ip_dict):
out_file = file(outfilename, "w")
for ip_addr, count in ip_dict.iteritems():
out_file.write("%5d\t%s\n" % (count, ip_addr))
out_file.close()
def parse_cmd_line_args():
if len(sys.argv)!=3:
print("Usage: %s [infilename] [outfilename]" % sys.argv[0])
sys.exit(1)
return sys.argv[1], sys.argv[2]
def main():
infilename, outfilename = parse_cmd_line_args()
ip_dict = read_ips(infilename)
write_ips(outfilename, ip_dict)
if __name__ == "__main__":
main()
Я хочу, чтобы добавить функциональность кода, так что если мы переходим определенный URL, он должен вернуть, сколько раз URL был доступен, по которому IP-адреса.
E.g. если я прохожу URL в качестве входных данных: http://www.epicbrowser.com/hrefadd.xml
выход должен быть в следующем формате
10.10.128.134 4
10.134. 222.232 6
Файл журнала находится в следующем формате с 24k строк.
220.227.40.118 - - [06/Mar/2012:00:00:00 -0800] "GET /mysidebars/newtab.html HTTP/1.1" 404 0 - -
220.227.40.118 - - [06/Mar/2012:00:00:00 -0800] "GET /hrefadd.xml HTTP/1.1" 204 214 - -
59.95.13.217 - - [06/Mar/2012:00:00:00 -0800] "GET /dbupdates2.xml HTTP/1.1" 404 0 - -
111.92.9.222 - - [06/Mar/2012:00:00:00 -0800] "GET /mysidebars/newtab.html HTTP/1.1" 404 0 - -
120.56.236.46 - - [06/Mar/2012:00:00:00 -0800] "GET /hrefadd.xml HTTP/1.1" 204 214 - -
49.138.106.21 - - [06/Mar/2012:00:00:00 -0800] "GET /add.txt HTTP/1.1" 204 214 - -
117.195.185.130 - - [06/Mar/2012:00:00:00 -0800] "GET /mysidebars/newtab.html HTTP/1.1" 404 0 - -
122.160.166.220 - - [06/Mar/2012:00:00:00 -0800] "GET /mysidebars/newtab.html HTTP/1.1" 404 0 - -
Ваш вопрос не имеет большого смысла. Пожалуйста, объясните, «сколько раз IP-адрес отправляется на URL-адрес, который мы передаем». –
@JimGarrison, я надеюсь, что я отредактировал этот вопрос, чтобы лучше понять проблему. –
@ Raju.allen: не могли бы вы разместить пример файла журнала, который используется в качестве входных данных (возможно, пример игрушки с удаленной личной информацией?) –