MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / scan_wifi

Method scan_wifi

utils.py:436–461  ·  view source on GitHub ↗
(self, handler)

Source from the content-addressed store, hash-verified

434 handler.end_headers()
435
436 def scan_wifi(self, handler):
437 try:
438 from shared import detect_wifi_interface
439 wifi_iface = detect_wifi_interface('auto')
440 result = subprocess.Popen(['sudo', 'iwlist', wifi_iface, 'scan'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
441 stdout, stderr = result.communicate()
442 if result.returncode != 0:
443 raise Exception(stderr)
444 networks = self.parse_scan_result(stdout)
445 self.logger.info(f"Found {len(networks)} networks")
446 current_ssid = subprocess.Popen(['iwgetid', '-r'], stdout=subprocess.PIPE, text=True)
447 ssid_out, ssid_err = current_ssid.communicate()
448 if current_ssid.returncode != 0:
449 raise Exception(ssid_err)
450 current_ssid = ssid_out.strip()
451 self.logger.info(f"Current SSID: {current_ssid}")
452 handler.send_response(200)
453 handler.send_header("Content-type", "application/json")
454 handler.end_headers()
455 handler.wfile.write(json.dumps({"networks": networks, "current_ssid": current_ssid}).encode('utf-8'))
456 except Exception as e:
457 handler.send_response(500)
458 handler.send_header("Content-type", "application/json")
459 handler.end_headers()
460 self.logger.error(f"Error scanning Wi-Fi networks: {e}")
461 handler.wfile.write(json.dumps({"error": str(e)}).encode('utf-8'))
462
463 def parse_scan_result(self, scan_output):
464 networks = []

Callers

nothing calls this directly

Calls 6

parse_scan_resultMethod · 0.95
detect_wifi_interfaceFunction · 0.90
infoMethod · 0.80
errorMethod · 0.80
writeMethod · 0.45
encodeMethod · 0.45

Tested by

no test coverage detected