By default, calibre listens on all IP addresses. For example, here is my configuration. You will see that I have three valid (enabled) IP addresses: 192.168.56.1, 192.168.120.38, and 127.0.0.1. One address is not enabled: 169.254.116.65.
Code:
calibre 2.21* [64bit] isfrozen: True is64bit: True
Windows-7-6.1.7601-SP1 Windows ('64bit', 'WindowsPE')
('Windows', '7', '6.1.7601')
Python 2.7.9
Windows: ('7', '6.1.7601', 'SP1', 'Multiprocessor Free')
...
All IP addresses {
'{6B740D02-608D-4848-A9B2-B2ECD40BB2B1}': [{'addr': '192.168.56.1', 'broadcast': '192.168.56.255', 'netmask': '255.255.255.0'}],
'{850AA568-3020-4789-B1B0-2058B85B1B38}': [{'addr': '192.168.120.38', 'broadcast': '192.168.120.255', 'netmask': '255.255.255.0'}],
'{04DAA7E8-7A19-4F92-BD67-C989D0BE1192}': [{'addr': '169.254.116.65'}],
'{846EE342-7039-11DE-9D20-806E6F6E6963}': [{'addr': '127.0.0.1', 'broadcast': '127.255.255.255', 'netmask': '255.0.0.0'}]}
Connecting to any of the enabled addresses gets the content server. You can get the above information by running calibre's device detection (preferences / miscellaneous / debug device detection).
Not being able to connect over wifi is probably caused one or more of your firewall, your anti-virus or "network security suite", your wifi using guest mode, your network not being of type "home" (assuming you are running windows), your wifi using "guest mode", or using multiple bands and the wifi router not passing packets between bands.
Although you are probably not using calibre companion, our
connection FAQ answer might help you find your problem.
If you really want to restrict the content server to using one IP address, you can do that via calibre's tweak "What interfaces should the content server listen on (ID: server_listen_on)" (calibre / preferences / tweaks)