mirror of
https://github.com/Ircama/epson_print_conf.git
synced 2024-10-18 01:00:36 -04:00
parent
114184913b
commit
2d81571e32
1 changed files with 20 additions and 17 deletions
|
@ -6,18 +6,14 @@ import warnings
|
||||||
|
|
||||||
from epson_print_conf import EpsonPrinter
|
from epson_print_conf import EpsonPrinter
|
||||||
|
|
||||||
|
|
||||||
# suppress pysnmp warnings
|
# suppress pysnmp warnings
|
||||||
warnings.filterwarnings("ignore", category=SyntaxWarning)
|
warnings.filterwarnings("ignore", category=SyntaxWarning)
|
||||||
|
|
||||||
# common printer ports
|
# common printer ports
|
||||||
PRINTER_PORTS = [9100, 515, 631]
|
PRINTER_PORTS = [9100, 515, 631]
|
||||||
|
|
||||||
class PrinterScanner:
|
|
||||||
|
|
||||||
def ping(self, host):
|
class PrinterScanner:
|
||||||
result = subprocess.run(['ping', '-n', '1', host], stdout=subprocess.PIPE, creationflags=subprocess.CREATE_NO_WINDOW)
|
|
||||||
return 'Reply from' in result.stdout.decode('utf-8')
|
|
||||||
|
|
||||||
def check_printer(self, ip, port):
|
def check_printer(self, ip, port):
|
||||||
try:
|
try:
|
||||||
|
@ -38,19 +34,26 @@ class PrinterScanner:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def scan_ip(self, ip):
|
def scan_ip(self, ip):
|
||||||
if self.ping(ip):
|
for port in PRINTER_PORTS:
|
||||||
for port in PRINTER_PORTS:
|
if self.check_printer(ip, port):
|
||||||
if self.check_printer(ip, port):
|
try:
|
||||||
try:
|
hostname = socket.gethostbyaddr(ip)[0]
|
||||||
hostname = socket.gethostbyaddr(ip)[0]
|
except socket.herror:
|
||||||
except socket.herror:
|
hostname = "Unknown"
|
||||||
hostname = "Unknown"
|
|
||||||
|
|
||||||
printer_name = self.get_printer_name(ip)
|
printer_name = self.get_printer_name(ip)
|
||||||
if printer_name:
|
if printer_name:
|
||||||
return {"ip": ip, "hostname": hostname, "name": printer_name}
|
return {
|
||||||
else:
|
"ip": ip,
|
||||||
return {"ip": ip, "hostname": hostname, "name": "Unknown"}
|
"hostname": hostname,
|
||||||
|
"name": printer_name
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"ip": ip,
|
||||||
|
"hostname": hostname,
|
||||||
|
"name": "Unknown"
|
||||||
|
}
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_all_printers(self, ip_addr="", local=False):
|
def get_all_printers(self, ip_addr="", local=False):
|
||||||
|
|
Loading…
Reference in a new issue