마인크래프트 LAN 서버 표시하기

2021년 6월 25일

마인크래프트 멀티플레이 서버 목록에서 로컬 서버를 표시하는 방법을 찾다가 7년 전에 적힌 블로그 글을 읽게 되었습니다. 첨부된 파이썬 스크립트에 파이썬 3과 호환이 되도록 수정을 해주니 잘 동작합니다:

import socket
import time

servers = [
        ["motd1", 25565],
        ["motd2", 25566]
]

BROADCAST_IP = "255.255.255.255"
BROADCAST_PORT = 4445

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

print("LAN에 마인크래프트 서버 표시중")

while True:
        for server in servers:
                msg = "[MOTD]%s[/MOTD][AD]%d[/AD]" % (server[0], server[1])
                sock.sendto(msg.encode('UTF-8'), (BROADCAST_IP, BROADCAST_PORT))
        time.sleep(1.5)

파일 최상단에 있는 서버 배열만 수정하면 됩니다. broadcast_to_lan.py과 같은 파일 이름으로 저장하고, python3 broadcast_to_lan.py로 실행합니다.

원글/스크립트 작성자이신 kebian께 감사합니다!