usfx.git

usfx

~ Ultimate Subdomain Finder X - CLI tool for internal network subdomain discovery
git clone https://github.com/debuman/usfx.git
commit 163d1cefc2e9249e588daf76a9cfab90bfb09d75
parent 1f2684e65b4f3e4ddbf1179d8df70d401dfc7521
Author: devastator-x <ICMProtocol@proton.me>
Date: Tue, 20 Jan 2026 16:43:28 +0900

fix: filter invalid IPs in web-tech module and remove output limit

Diffstat:
Msrc/usfx/orchestrator.py | 10++++++++--
Msrc/usfx/utils/output.py | 10++--------
2 files changed, 10 insertion(+), 10 deletion(-)

diff --git a/src/usfx/orchestrator.py b/src/usfx/orchestrator.py
@@ -562,9 +562,15 @@ class SubdomainOrchestrator:
         timeout = self.config.timeout if self.config else 5.0
         web_ports = self.config.web_ports if self.config else [80, 443, 8080, 8443]
 
-        # Get current known subdomains
+        # Invalid IPs to filter out
+        INVALID_IPS = {'0.0.0.0', '127.0.0.1', '::1', '', None}
+
+        # Get current known subdomains (filter out invalid IPs)
         with self._results_lock:
-            known_subs = {k: v.get('ip') for k, v in self.state.discovered.items()}
+            known_subs = {
+                k: v.get('ip') for k, v in self.state.discovered.items()
+                if v.get('ip') not in INVALID_IPS
+            }
 
         if not known_subs:
             logger.info("No subdomains found for extended analysis")
diff --git a/src/usfx/utils/output.py b/src/usfx/utils/output.py
@@ -516,16 +516,13 @@ class ConsoleOutput:
             table.add_column("Title", style="white", max_width=30)
             table.add_column("Technologies", style="yellow")
 
-            for w in web_tech_results[:30]:
+            for w in web_tech_results:
                 techs = ', '.join(w.technologies[:5]) if w.technologies else '-'
                 if len(w.technologies) > 5:
                     techs += f' (+{len(w.technologies) - 5})'
                 title = (w.title[:27] + '...') if w.title and len(w.title) > 30 else (w.title or '-')
                 table.add_row(w.url, str(w.status), title, techs)
 
-            if len(web_tech_results) > 30:
-                table.add_row("...", "", f"({len(web_tech_results) - 30} more)", "")
-
             self.console.print(table)
 
             # Technology summary
@@ -543,16 +540,13 @@ class ConsoleOutput:
             print(f"\nWeb Technologies Detected: {len(web_tech_results)} servers")
             print("-" * 60)
 
-            for w in web_tech_results[:30]:
+            for w in web_tech_results:
                 techs = ', '.join(w.technologies[:5]) if w.technologies else '-'
                 print(f"  {w.url} [{w.status}]")
                 if w.title:
                     print(f"    Title: {w.title[:50]}")
                 print(f"    Tech: {techs}")
 
-            if len(web_tech_results) > 30:
-                print(f"  ... ({len(web_tech_results) - 30} more)")
-
     def create_progress(self):
         """Create a progress context manager"""
         if self.use_rich and not self.quiet: