import requests
import subprocess
import re
import json
import geocoder

#prende in input il nome del json e inizializza un dizionario vuoto
x=input(str("inserisci nome del file: "))
dictt={}
aa=0


#vengono settati i parametri per utilizzare curl 
headers = {
    'Content-Type': 'application/json',
}

params = (
    ('pretty', ''),
    ('refresh', ''),
)


#controllo che il nome del file sia corretto
y=x

if(".json" not in x):
    y=x+".json"


try:

    #l'intero contenuto del json viene salvato in due liste (jason_as_list,lista)
    json_as_string = open(y, 'r')

    lines = [re.sub("[\[\{\]]*","",one_object.rstrip()) for one_object in json_as_string.readlines()]
 
    json_as_list = "".join(lines).split('}')
    lista="".join(lines).split(',')
    locc=[]
    i=0

    
    for p in lista:
        if("src_ip" in p):
            lista2 = p.split('"') #salva l'src_ip
            if lista2[3] not in dictt:

                #se l'ip non è nel dizionario viene eseguita una chiamata a
                #geocoder che ricava le coordinate dall'ip
                g = geocoder.ip(lista2[3])
                geoc=str(g.lat)+","+str(g.lng)

                #l'ip viene messo nella lista locc
                locc.append(lista2[3])

                #le coordinate dell'ip vengono messe nel dizionario
                #utilizzando come chiave l'ip stesso
                dictt[lista2[3]]=geoc
                aa=aa+1
                print(aa)
                
                
            else:

                 #se l'ip era già nel dizionario non viene esguita nessuna
                 #chiamata a geocoder
                 locc.append(lista2[3])


    #si scorre il contenuto del json aggiungendo ad ogni riga il valore
    #  location : coordinates
    text_file = open(y, "w")
    for elem in json_as_list:
         if len(elem) > 0:
             if i == len(locc)-1:
                 break
             elem='{'+elem+', "location": "'+dictt.get(locc[i])+'"}\n'
             i=i+1
             
             
             text_file.write(elem)
    text_file.close()

    #viene sovrascitto il json originale aggiungendo un indice come prefisso
    #di ogni riga (obbligatorio per indicizzare il json su elasticsearch)
    
    output = ""
    file_name = y
    string_to_add = '{"index":{"_index":"'+y+'"}}\n'

    with open(file_name, 'r') as f:
        file_lines = [''.join([string_to_add, x.strip(), '\n']) for x in f.readlines()]

    with open(file_name, 'w') as f:
        f.writelines(file_lines)


    #tramite curl viene caricato il json su elasticsearch    
        data = open(y, 'rb').read()
        response = requests.post('http://localhost:9200/log/_doc/_bulk', headers=headers, params=params, data=data)
    if(response.status_code==200):
        print("Caricamento eseguito")
    else:
        print("Caricamento non riuscito, riprova")
except IOError:
    print("File non esistente")
a=input()


41cd78dff7692a068f73f1eadd00427174aa8a1a
<mask token>

<mask token>
if '.json' not in x:
    y = x + '.json'
try:
    json_as_string = open(y, 'r')
    lines = [re.sub('[\\[\\{\\]]*', '', one_object.rstrip()) for one_object in
        json_as_string.readlines()]
    json_as_list = ''.join(lines).split('}')
    lista = ''.join(lines).split(',')
    locc = []
    i = 0
    for p in lista:
        if 'src_ip' in p:
            lista2 = p.split('"')
            if lista2[3] not in dictt:
                g = geocoder.ip(lista2[3])
                geoc = str(g.lat) + ',' + str(g.lng)
                locc.append(lista2[3])
                dictt[lista2[3]] = geoc
                aa = aa + 1
                print(aa)
            else:
                locc.append(lista2[3])
    text_file = open(y, 'w')
    for elem in json_as_list:
        if len(elem) > 0:
            if i == len(locc) - 1:
                break
            elem = '{' + elem + ', "location": "' + dictt.get(locc[i]) + '"}\n'
            i = i + 1
            text_file.write(elem)
    text_file.close()
    output = ''
    file_name = y
    string_to_add = '{"index":{"_index":"' + y + '"}}\n'
    with open(file_name, 'r') as f:
        file_lines = [''.join([string_to_add, x.strip(), '\n']) for x in f.
            readlines()]
    with open(file_name, 'w') as f:
        f.writelines(file_lines)
        data = open(y, 'rb').read()
        response = requests.post('http://localhost:9200/log/_doc/_bulk',
            headers=headers, params=params, data=data)
    if response.status_code == 200:
        print('Caricamento eseguito')
    else:
        print('Caricamento non riuscito, riprova')
except IOError:
    print('File non esistente')
<mask token>

<mask token>
x = input(str('inserisci nome del file: '))
dictt = {}
aa = 0
headers = {'Content-Type': 'application/json'}
params = ('pretty', ''), ('refresh', '')
y = x
if '.json' not in x:
    y = x + '.json'
try:
    json_as_string = open(y, 'r')
    lines = [re.sub('[\\[\\{\\]]*', '', one_object.rstrip()) for one_object in
        json_as_string.readlines()]
    json_as_list = ''.join(lines).split('}')
    lista = ''.join(lines).split(',')
    locc = []
    i = 0
    for p in lista:
        if 'src_ip' in p:
            lista2 = p.split('"')
            if lista2[3] not in dictt:
                g = geocoder.ip(lista2[3])
                geoc = str(g.lat) + ',' + str(g.lng)
                locc.append(lista2[3])
                dictt[lista2[3]] = geoc
                aa = aa + 1
                print(aa)
            else:
                locc.append(lista2[3])
    text_file = open(y, 'w')
    for elem in json_as_list:
        if len(elem) > 0:
            if i == len(locc) - 1:
                break
            elem = '{' + elem + ', "location": "' + dictt.get(locc[i]) + '"}\n'
            i = i + 1
            text_file.write(elem)
    text_file.close()
    output = ''
    file_name = y
    string_to_add = '{"index":{"_index":"' + y + '"}}\n'
    with open(file_name, 'r') as f:
        file_lines = [''.join([string_to_add, x.strip(), '\n']) for x in f.
            readlines()]
    with open(file_name, 'w') as f:
        f.writelines(file_lines)
        data = open(y, 'rb').read()
        response = requests.post('http://localhost:9200/log/_doc/_bulk',
            headers=headers, params=params, data=data)
    if response.status_code == 200:
        print('Caricamento eseguito')
    else:
        print('Caricamento non riuscito, riprova')
except IOError:
    print('File non esistente')
a = input()

import requests
import subprocess
import re
import json
import geocoder
x = input(str('inserisci nome del file: '))
dictt = {}
aa = 0
headers = {'Content-Type': 'application/json'}
params = ('pretty', ''), ('refresh', '')
y = x
if '.json' not in x:
    y = x + '.json'
try:
    json_as_string = open(y, 'r')
    lines = [re.sub('[\\[\\{\\]]*', '', one_object.rstrip()) for one_object in
        json_as_string.readlines()]
    json_as_list = ''.join(lines).split('}')
    lista = ''.join(lines).split(',')
    locc = []
    i = 0
    for p in lista:
        if 'src_ip' in p:
            lista2 = p.split('"')
            if lista2[3] not in dictt:
                g = geocoder.ip(lista2[3])
                geoc = str(g.lat) + ',' + str(g.lng)
                locc.append(lista2[3])
                dictt[lista2[3]] = geoc
                aa = aa + 1
                print(aa)
            else:
                locc.append(lista2[3])
    text_file = open(y, 'w')
    for elem in json_as_list:
        if len(elem) > 0:
            if i == len(locc) - 1:
                break
            elem = '{' + elem + ', "location": "' + dictt.get(locc[i]) + '"}\n'
            i = i + 1
            text_file.write(elem)
    text_file.close()
    output = ''
    file_name = y
    string_to_add = '{"index":{"_index":"' + y + '"}}\n'
    with open(file_name, 'r') as f:
        file_lines = [''.join([string_to_add, x.strip(), '\n']) for x in f.
            readlines()]
    with open(file_name, 'w') as f:
        f.writelines(file_lines)
        data = open(y, 'rb').read()
        response = requests.post('http://localhost:9200/log/_doc/_bulk',
            headers=headers, params=params, data=data)
    if response.status_code == 200:
        print('Caricamento eseguito')
    else:
        print('Caricamento non riuscito, riprova')
except IOError:
    print('File non esistente')
a = input()

import requests
import subprocess
import re
import json
import geocoder

#prende in input il nome del json e inizializza un dizionario vuoto
x=input(str("inserisci nome del file: "))
dictt={}
aa=0


#vengono settati i parametri per utilizzare curl 
headers = {
    'Content-Type': 'application/json',
}

params = (
    ('pretty', ''),
    ('refresh', ''),
)


#controllo che il nome del file sia corretto
y=x

if(".json" not in x):
    y=x+".json"


try:

    #l'intero contenuto del json viene salvato in due liste (jason_as_list,lista)
    json_as_string = open(y, 'r')

    lines = [re.sub("[\[\{\]]*","",one_object.rstrip()) for one_object in json_as_string.readlines()]
 
    json_as_list = "".join(lines).split('}')
    lista="".join(lines).split(',')
    locc=[]
    i=0

    
    for p in lista:
        if("src_ip" in p):
            lista2 = p.split('"') #salva l'src_ip
            if lista2[3] not in dictt:

                #se l'ip non è nel dizionario viene eseguita una chiamata a
                #geocoder che ricava le coordinate dall'ip
                g = geocoder.ip(lista2[3])
                geoc=str(g.lat)+","+str(g.lng)

                #l'ip viene messo nella lista locc
                locc.append(lista2[3])

                #le coordinate dell'ip vengono messe nel dizionario
                #utilizzando come chiave l'ip stesso
                dictt[lista2[3]]=geoc
                aa=aa+1
                print(aa)
                
                
            else:

                 #se l'ip era già nel dizionario non viene esguita nessuna
                 #chiamata a geocoder
                 locc.append(lista2[3])


    #si scorre il contenuto del json aggiungendo ad ogni riga il valore
    #  location : coordinates
    text_file = open(y, "w")
    for elem in json_as_list:
         if len(elem) > 0:
             if i == len(locc)-1:
                 break
             elem='{'+elem+', "location": "'+dictt.get(locc[i])+'"}\n'
             i=i+1
             
             
             text_file.write(elem)
    text_file.close()

    #viene sovrascitto il json originale aggiungendo un indice come prefisso
    #di ogni riga (obbligatorio per indicizzare il json su elasticsearch)
    
    output = ""
    file_name = y
    string_to_add = '{"index":{"_index":"'+y+'"}}\n'

    with open(file_name, 'r') as f:
        file_lines = [''.join([string_to_add, x.strip(), '\n']) for x in f.readlines()]

    with open(file_name, 'w') as f:
        f.writelines(file_lines)


    #tramite curl viene caricato il json su elasticsearch    
        data = open(y, 'rb').read()
        response = requests.post('http://localhost:9200/log/_doc/_bulk', headers=headers, params=params, data=data)
    if(response.status_code==200):
        print("Caricamento eseguito")
    else:
        print("Caricamento non riuscito, riprova")
except IOError:
    print("File non esistente")
a=input()

