CAN Network via Ethernet?

I have no experience with WiFi shields but with WiFi XBees on appropriate shields. I used a RN-XV from Roving Networks (http://www.rovingnetworks.com/products/RN_XV) which communicates over the UART with the Arduino and works flawlessly. I also use WiFi Bees (Wifi Bee | Seeed Studio Wiki) which are bit more complex to use (they are small Arduinos themselves) but allow much greater flexibility as the included ATmega328 handles the protocols with a minimal TCP/IP stack. If used as an XBee you can have all the network part on the WiFi Bee and let the main Arduino do the CAN handling (and whatever else you have for it).

For CAN communication I used this shield (I have only the shop link I bought it from: http://shop.boxtec.ch/product_info.php/products_id/40573). As the only CAN bus I have is in my car I used it only there.