You don't state what webserver software you are running but in the case of Apache on a Linux server this is achieved via name based virtual hosting and doesn't need multiple IP addresses as this works off a single IP address.
I will supply some links later but will explain how this works first. Firstly you need registered domain names. The registrar will manage the DNS part for you in most cases and thereafter you merely need to tell or use the registrar's control panel to point the domain names to an IP address. In your public web space, normally /var/www you must create the necessary pages with index page for each domain name. eg. /var/www/abc.com, /var/www/def.com and /var/www/ghi.com. Now in the Apache configuration file you set up VirtualServers so that each one sends requests received on port 80 to the relevant file on the server eg;
<VirtualHost *:80>
ServerName abc.com
ServerAlias
www.abc.com
ServerAdmin
user_name@abc.com
DocumentRoot /var/www/abc.com
ErrorLog logs/error_log
TransferLog logs/access_log
</VirtualHost>
So requests for abc.com domain sent over the Internet are directed by the DNS, managed by the registrar, to your IP address, the Apache server receives this and sends the request to the document root at /var/www/abc.com/index.htm
Do some more searching using the term name based virtual hosting and have a look at
this and
this for further info and read the Apache Virtual server docs mentioned in the articles.