You can see the list of compatible hardware for any product by going to the product's documentation page, which you can find here:
https://docs.arduino.cc/hardware/
Then selecting the "Compatibility" tab on the product documentation page. For the Portenta Hat Carrier, you can see it here:
https://docs.arduino.cc/hardware/portenta-hat-carrier/#compatibility
The Portenta X8 board is included in the list of hardware that is compatible with the Portenta Hat Carrier.
Network communication is done via the Portenta X8 Linux machine. There are many different ways you can implement Internet communication on a Linux machine. You would get more effective advice from the forum helpers if you provided more information about your goal.
You might be interested in using the Portenta X8 as an Arduino Cloud IoT Device. You can learn about that from this tutorial:
https://docs.arduino.cc/tutorials/portenta-x8/user-manual/#portenta-x8-with-arduino-cloud
If you are wanting to communicate over the Internet using some approach other than Arduino Cloud IoT, then the first thing to do will be to configure the credentials of your Wi-Fi access point in the Portenta X8's Linux machine. You can do this using the Arduino Linux Wizard:
https://docs.arduino.cc/tutorials/portenta-x8/user-manual/#setup-with-the-arduino-linux-wizard
Alternatively, you can connect to the shell on the board via the USB connection to your computer by running the command adb shell
on your computer:
https://docs.arduino.cc/tutorials/portenta-x8/user-manual/#working-with-linux
Then using the nmcli
tool from that shell to configure the credentials:
https://docs.arduino.cc/tutorials/portenta-x8/user-manual/#manage-your-network-via-cli
After that, the board will connect to your Wi-Fi access point and have access to the Internet through that. You can now communicate over the Internet any way you like. A good option would be to implement the network communication for your project using a Python script.
If you want to learn about how to communicate between the Python script running on the Linux machine and the Arduino sketch running on the Portenta X8's STM32H7 microcontroller, study this tutorial:
https://docs.arduino.cc/tutorials/portenta-x8/python-arduino-data-exchange/