Hm, after writing that I came up with an idea. What if when the new player joins the LAN, his client broadcasts a query to the LAN like "who has a game?" That prompts a response from any host on the LAN. (I guess that response doesn't need to be broadcasted though.) I'm pretty sure that would work.
Is there a better or more standard way of doing this?
this is fairly standard; the main reason is that if no-one ever joins then no extraneous packets are sent out. As opposed to your origingal proposal which involves sending out packets pointlessly (potentially).