In Apache there is a type of Virtual Hosting called "Named-based Virtual Hosting" this type of virtual hosting uses names instead of IP addresses so you can have a large variety of websites with their domain names in a single IP address. Basically, you net to first enable the NameVirtualHost directive in httpd.conf giving it the single ip address you have and then set your VirtualHost container directives to point to it like the following for example:
Port 80
#...
ServerName webserver.thecompanyname.com
#...
NameVirtualHost 192.168.1.2
#
# ...
#
<VirtualHost 192.168.1.2>
ServerName
www.a.com
DocumentRoot /www/a.com (path to your www files)
...
</VirtualHost>
<VirtualHost 192.168.1.2>
ServerName
www.b.com
DocumentRoot /www/a.com
...
</VirtualHost>
You can go to the apache website
www.apache.org and get some very good info on it. Also, you can get these books : "Professional Apache (WROX)" , Apache Server Administrator Handbook (IDG)", and "Apache a Definitive Guide (O'Reilly)".