Now I am running into an issue where someone is telling me this is a v2 igmp join request and that they require v3.
At the moment it isn't any kind of a valid join request, as it doesn't specify a valid multicast group. INADDR_ANY is not a multicast group, it is strictly a bind-address. Multicast groups start at 224.0.0.0, but make sure you pick one that is legal for this use and available.
Whether the protocol engaged in when you get this right is V2 or V3 isn't affected by this code: it depends on what the UDP protocol stack does when you call it. You don't have any control over that. I can't see why 'someone' would require IGMP V3 either.