You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During further investigation for PR #150 and Issue #142 I noticed, that ankerctl.py lan-search does not work as expected on Windows 11 in that no printer is found even though the host is on the same network as the printer and the printer is turned on.
From Linux computers, the printer could be found without issues.
To Reproduce
Steps to reproduce the behavior:
execute ankerctl.py lan-search on a Windows 11 computer
No printer will be detected.
Expected behavior
The printer should be detected just the same as on a Linux machine.
Desktop (please complete the following information):
OS: Windows 11
Python 3.12
Version 1.0
Initial Analysis
The following observations where done:
Wireshark on the Win 11 machine did not report any UDP broadcast packets being sent out, even with the Defender Firewall being disabled.
A small test program just sending out UDP broadcasts to 255.255.255.255 port confirmed the issue:
#!/usr/bin/pythonimportsocketsock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
#sock.bind(("192.168.178.23", 0)) # with this the packet is actually sent on the desired interface#sock.bind(("0.0.0.0", 0)) # does not work#sock.bind(("", 0)) # does not work eitheraddr= ("255.255.255.255", 32108)
sock.sendto(b"hello", addr)
This SO post lead me to the solution in the script above (see comment "# with this the packet is actually sent..."). Short story, on Windows 11 the broadcast does not seem to be sent out on all interfaces, just on the "first" on (whichever this may be).
So the solution for a Windows code path might be to determine all local network addresses and send out the broadcast individually from each of these addresses. I already found a library ifaddr which seems to do the job well according to initial tests.
The text was updated successfully, but these errors were encountered:
During further investigation for PR #150 and Issue #142 I noticed, that
ankerctl.py lan-search
does not work as expected on Windows 11 in that no printer is found even though the host is on the same network as the printer and the printer is turned on.From Linux computers, the printer could be found without issues.
To Reproduce
Steps to reproduce the behavior:
ankerctl.py lan-search
on a Windows 11 computerExpected behavior
The printer should be detected just the same as on a Linux machine.
Desktop (please complete the following information):
Initial Analysis
The following observations where done:
So the solution for a Windows code path might be to determine all local network addresses and send out the broadcast individually from each of these addresses. I already found a library ifaddr which seems to do the job well according to initial tests.
The text was updated successfully, but these errors were encountered: