Skip to content

Instantly share code, notes, and snippets.

@amitn
Last active July 29, 2020 19:37
Show Gist options
  • Save amitn/dcb9e8856cd91a52b7c0ae802fe5e067 to your computer and use it in GitHub Desktop.
Save amitn/dcb9e8856cd91a52b7c0ae802fe5e067 to your computer and use it in GitHub Desktop.
import socket
import time
import binascii
FLASH_FORGE_REMOTE_PORT = 19000
FLASH_FORGE_LOCAL_PORT = 18001
FLASH_FORGE_MULTICAST_GROUP = "225.0.0.9"
def findprinter(src):
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
server.settimeout(1)
server.bind((src, FLASH_FORGE_LOCAL_PORT))
payload = socket.inet_aton(src)
payload += (FLASH_FORGE_LOCAL_PORT).to_bytes(2, byteorder='big')
payload += bytes.fromhex('0000')
print("Sending: %s" % payload)
server.sendto(payload, (FLASH_FORGE_MULTICAST_GROUP, FLASH_FORGE_REMOTE_PORT))
try:
data, addr = server.recvfrom(1024)
print("received message: %s from %s" % (data, addr))
except socket.timeout:
pass
def getallipv4addr():
return [i[4][0] for i in socket.getaddrinfo(host=socket.gethostname(), port=None, family=socket.AF_INET)]
if __name__ == "__main__":
for ip in getallipv4addr():
print(ip)
findprinter(ip)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment