Bravo Dsuki prava si legenda izgleda duplecast jedini ima sada trailers na vod sekciji serije i filmovi na tv ekranu.
Odlicno si uradio prvi rijesio,vidim da te i duplecast tim hvali.
Ako se ostvare i titlovi za yugu i stalker raja ce ti dignut spomenik.
# ===== ACTIONS =====
def add_url(self):
url = self.url_entry.get().strip()
if not url.startswith("http"):
messagebox.showerror("Greška", "URL mora početi sa http:// ili https://")
return
self.urls.append(url)
self.url_entry.delete(0, tk.END)
self.text.insert(tk.END, f"[DODAT URL] {url}\n", "green")
def load_m3u(self):
path = filedialog.askopenfilename(filetypes=[("M3U files","*.m3u")])
if not path:
return
with open(path, "r", errors="ignore") as f:
data = f.read()
found = re.findall(r'http?://[^\s]+', data)
self.urls.extend(found)
messagebox.showinfo("OK", f"Učitano {len(found)} URL‑ova")
def analyze(self):
if not self.urls:
messagebox.showwarning("Prazno", "Nema URL‑ova")
return
ips = set()
ports = []
live = vod = series = 0
risks = 0
panel = "Custom"
for u in self.urls:
p = urlparse(u)
ips.add(p.hostname)
ports.append(p.port or 80)
if "/live/" in u: live += 1
elif "/movie/" in u: vod += 1
elif "/series/" in u: series += 1
if "get.php" in u:
panel = "Xtream Codes / Xtream UI"
risks += 1
if "username=" in u and "password=" in u:
risks += 1
port_count = Counter(ports)
used_ports = set(port_count.keys())
free_ports = [p for p in COMMON_PORTS if p not in used_ports]
if len(ips) > 1: risks += 1
if len(port_count) > 1: risks += 1
if 80 in used_ports: risks += 1
if any(p in [25461,25500] for p in used_ports): risks += 1
score = "LOW" if risks <= 2 else "MEDIUM" if risks <= 5 else "HIGH"
if osfw == "ufw":
self.firewall_cmds += "# OSTAVI (ALLOW)\n"
for p in used_ports:
self.firewall_cmds += f"ufw allow {p}\n"
self.firewall_cmds += "\n# ZATVORI (DENY)\n"
for p in free_ports:
self.firewall_cmds += f"ufw deny {p}\n"
else:
self.firewall_cmds += "# OSTAVI (ACCEPT)\n"
for p in used_ports:
self.firewall_cmds += f"iptables -A INPUT -p tcp --dport {p} -j ACCEPT\n"
self.firewall_cmds += "\n# ZATVORI (DROP)\n"
for p in free_ports:
self.firewall_cmds += f"iptables -A INPUT -p tcp --dport {p} -j DROP\n"
def copy_firewall(self):
if not self.firewall_cmds:
return
self.root.clipboard_clear()
self.root.clipboard_append(self.firewall_cmds)
messagebox.showinfo("OK", "Firewall komande kopirane")
def export_txt(self):
with open("security_report.txt","w") as f:
f.write(self.report + "\n\n" + self.firewall_cmds)
messagebox.showinfo("OK","TXT snimljen")
def export_html(self):
html = f"<html><body style='background:#111;color:#0f0'><pre>{self.report}\n\n{self.firewall_cmds}</pre></body></html>"
with open("security_report.html","w") as f:
f.write(html)
messagebox.showinfo("OK","HTML snimljen")
# ===== ACTIONS =====
def add_url(self):
url = self.url_entry.get().strip()
if not url.startswith("http"):
messagebox.showerror("Greška", "URL mora početi sa http:// ili https://")
return
self.urls.append(url)
self.url_entry.delete(0, tk.END)
self.text.insert(tk.END, f"[DODAT URL] {url}\n", "green")
def load_m3u(self):
path = filedialog.askopenfilename(filetypes=[("M3U files","*.m3u")])
if not path:
return
with open(path, "r", errors="ignore") as f:
data = f.read()
found = re.findall(r'http?://[^\s]+', data)
self.urls.extend(found)
messagebox.showinfo("OK", f"Učitano {len(found)} URL‑ova")
def analyze(self):
if not self.urls:
messagebox.showwarning("Prazno", "Nema URL‑ova")
return
ips = set()
ports = []
live = vod = series = 0
risks = 0
panel = "Custom"
for u in self.urls:
p = urlparse(u)
ips.add(p.hostname)
ports.append(p.port or 80)
if "/live/" in u: live += 1
elif "/movie/" in u: vod += 1
elif "/series/" in u: series += 1
if "get.php" in u:
panel = "Xtream Codes / Xtream UI"
risks += 1
if "username=" in u and "password=" in u:
risks += 1
port_count = Counter(ports)
used_ports = set(port_count.keys())
free_ports = [p for p in COMMON_PORTS if p not in used_ports]
if len(ips) > 1: risks += 1
if len(port_count) > 1: risks += 1
if 80 in used_ports: risks += 1
if any(p in [25461,25500] for p in used_ports): risks += 1
score = "LOW" if risks <= 2 else "MEDIUM" if risks <= 5 else "HIGH"
if osfw == "ufw":
self.firewall_cmds += "# OSTAVI (ALLOW)\n"
for p in used_ports:
self.firewall_cmds += f"ufw allow {p}\n"
self.firewall_cmds += "\n# ZATVORI (DENY)\n"
for p in free_ports:
self.firewall_cmds += f"ufw deny {p}\n"
else:
self.firewall_cmds += "# OSTAVI (ACCEPT)\n"
for p in used_ports:
self.firewall_cmds += f"iptables -A INPUT -p tcp --dport {p} -j ACCEPT\n"
self.firewall_cmds += "\n# ZATVORI (DROP)\n"
for p in free_ports:
self.firewall_cmds += f"iptables -A INPUT -p tcp --dport {p} -j DROP\n"
def copy_firewall(self):
if not self.firewall_cmds:
return
self.root.clipboard_clear()
self.root.clipboard_append(self.firewall_cmds)
messagebox.showinfo("OK", "Firewall komande kopirane")
def export_txt(self):
with open("security_report.txt","w") as f:
f.write(self.report + "\n\n" + self.firewall_cmds)
messagebox.showinfo("OK","TXT snimljen")
def export_html(self):
html = f"<html><body style='background:#111;color:#0f0'><pre>{self.report}\n\n{self.firewall_cmds}</pre></body></html>"
with open("security_report.html","w") as f:
f.write(html)
messagebox.showinfo("OK","HTML snimljen")
# ===== ACTIONS =====
def add_url(self):
url = self.url_entry.get().strip()
if not url.startswith("http"):
messagebox.showerror("Greška", "URL mora početi sa http:// ili https://")
return
self.urls.append(url)
self.url_entry.delete(0, tk.END)
self.text.insert(tk.END, f"[DODAT URL] {url}\n", "green")
def load_m3u(self):
path = filedialog.askopenfilename(filetypes=[("M3U files","*.m3u")])
if not path:
return
with open(path, "r", errors="ignore") as f:
data = f.read()
found = re.findall(r'http?://[^\s]+', data)
self.urls.extend(found)
messagebox.showinfo("OK", f"Učitano {len(found)} URL‑ova")
def analyze(self):
if not self.urls:
messagebox.showwarning("Prazno", "Nema URL‑ova")
return
ips = set()
ports = []
live = vod = series = 0
risks = 0
panel = "Custom"
for u in self.urls:
p = urlparse(u)
ips.add(p.hostname)
ports.append(p.port or 80)
if "/live/" in u: live += 1
elif "/movie/" in u: vod += 1
elif "/series/" in u: series += 1
if "get.php" in u:
panel = "Xtream Codes / Xtream UI"
risks += 1
if "username=" in u and "password=" in u:
risks += 1
port_count = Counter(ports)
used_ports = set(port_count.keys())
free_ports = [p for p in COMMON_PORTS if p not in used_ports]
if len(ips) > 1: risks += 1
if len(port_count) > 1: risks += 1
if 80 in used_ports: risks += 1
if any(p in [25461,25500] for p in used_ports): risks += 1
score = "LOW" if risks <= 2 else "MEDIUM" if risks <= 5 else "HIGH"
if osfw == "ufw":
self.firewall_cmds += "# OSTAVI (ALLOW)\n"
for p in used_ports:
self.firewall_cmds += f"ufw allow {p}\n"
self.firewall_cmds += "\n# ZATVORI (DENY)\n"
for p in free_ports:
self.firewall_cmds += f"ufw deny {p}\n"
else:
self.firewall_cmds += "# OSTAVI (ACCEPT)\n"
for p in used_ports:
self.firewall_cmds += f"iptables -A INPUT -p tcp --dport {p} -j ACCEPT\n"
self.firewall_cmds += "\n# ZATVORI (DROP)\n"
for p in free_ports:
self.firewall_cmds += f"iptables -A INPUT -p tcp --dport {p} -j DROP\n"
def copy_firewall(self):
if not self.firewall_cmds:
return
self.root.clipboard_clear()
self.root.clipboard_append(self.firewall_cmds)
messagebox.showinfo("OK", "Firewall komande kopirane")
def export_txt(self):
with open("security_report.txt","w") as f:
f.write(self.report + "\n\n" + self.firewall_cmds)
messagebox.showinfo("OK","TXT snimljen")
def export_html(self):
html = f"<html><body style='background:#111;color:#0f0'><pre>{self.report}\n\n{self.firewall_cmds}</pre></body></html>"
with open("security_report.html","w") as f:
f.write(html)
messagebox.showinfo("OK","HTML snimljen")
Оваа страница користи колачиња за персонализирање на содржината. Со продолжување на користењето, се согласувате со нашата политика за користење колачиња.