I’ve made this code but it is not acting how I was expecting:
packets = rdpcap(file)
for m in packtes:
if (raw(m)[14:].decode("ASCII")).find(search)!= -1:
riga = (raw(m)[14:].decode("ASCII"))
index_1 = riga[riga.index(":"):]
index_2 = index_1[1:index_1.index(",")]
index_3 = index_2.replace(" ", "")
if search == "True":
var_1 = 1
else:
var_2 = 0
break
else:
if test == "nothing":
var_1 = 0
else:
var_2 = 1
Basically I read a .pcap file which can be full of information or empty and I’m looking for a word inside each raw. If it is found I start some operation on this string in order to reach a desidered position inside the string.
I noticed that when the .pcap file is empty the code doesn’t enter into the “else” condition. I think I’m making a mistake with the find function in python but I don’t see it.
Advertisement
Answer
packets = rdpcap(file)
#gets executed when there's content in the file
if(packets):
for m in packtes:
if (raw(m)[14:].decode("ASCII")).find(search)!= -1:
riga = (raw(m)[14:].decode("ASCII"))
index_1 = riga[riga.index(":"):]
index_2 = index_1[1:index_1.index(",")]
index_3 = index_2.replace(" ", "")
if search == "True":
var_1 = 1
else:
var_2 = 0
break
else:
if test == "nothing":
var_1 = 0
else:
var_2 = 1
else:
print("Empty file")
it will execute the outermost if statement when there’s content in the file otherwise it will execute the else statement.