There is absolutely no way to list all domains "hosted" on a machine as you state it.
First of all, what you wanted to do will only give you the name(s) attached to a PTR record (reverse DNS to an IP). It will not give you a list of A records pointing to it.
What you must understand about DNS, is that they act as a database of associated IP addresses and hostnames.
There may be several DNS servers with records pointing (with A records) to a single host. But there is no way to know which servers are effectively hosting those records, as well, as there is no type of DNS query that asks a DNS server for A records pointing to a specific IP.
You stated about websites proposing to "query" about an IP to know which sites are hosted on it. All those sites do, is storing in a database association between public websites (and hostnames) and their attached IP address(es), indexing on the IP.
This only works if they can guarantee you that they crowled the entire www, world-wide, and that their informations are accurate, which they can't, as they are thousands of "websites" hosted privately (without search engines indexation and no cross-links), others moving around and changing IP, etc ...
I hope this explaination was clear enough and helped.
host 1.2.3.4 1.2.3.4
and that could reveal all the websites hosted on that ip, for example ispconfig by default configures reverse DNS, as well many other hosting systems as well windows active directory.