XlinkKai or Hamachi are VPN progams, they allow multiple computers away from each others by Internet to acts like as if they were connected in Local network to use LAN option in games.
The DS doesn't have LAN option which try to connect to LAN IP (192.168.x.x) so these program are not enough.
The Nintendo DS doesn't use WiFi, but NiFi (a Wifi without the TCP-IP layer, as TCP is not required in local play, no Internet involved).
To use something like XlinkKai or Hamachi (VPN), you first need to add that TCP-IP layer to all the packets transmitted to/from the DS before sending/receiving it to LAN IP (i.e. 192.168.x.x).
In order to do that, you first need a WiFi card which can "talk" NiFi with your console (not wifi!).
Only one chipset was able to do it (Ralink RT2500 or RT2560).
This chipset based cards were used a long time ago to Wifi-me (a homebrew launching method through Download play menu).
Maybe other chipset based cards can do it, but it was the only one used for DS.
To allow your card to see NiFi packets you need a specific driver which disable WiFi. This driver already exists.
Then, you need a program which adds the missing TCP-IP layer to each packet. This program called
DSTunnel was in developement by SGStair (the first one who documented the Wireless of the DS, and made the DSWifi library).
Though, this Tunnel program was never completed. (too bad!)
But, like clarky said above, adding the TCP-IP and transmitting the data over Internet add another problem: The response delay.
If the DS doesn't see the next packet coming in the expected time, the connection is closed and the local play disconnected.
So, it would require a lot of things:
WiFi card working in Access Point with a Ralink RT25x0 chipset : OK
NiFi Driver : OK
TCP layer added to packet : Doesn't exist. best way would be to do it by the driver, not in a software.
Send the packet over Internet : Could be done by the TCP layer program (tunneling)
And the same component on the receiving computer, in reverse order!
And fast enough.