Using curl, I would like to request a URI from a web server via a specific IP address that does not necessarily match the forward DNS of the hostname.For example, suppose the hostname www.example.com would normally resolve to 192.0.2.222. How would I make curl request the URI http://www.example.com from 192.0.2.111 instead (and see the response)?Note: I would like to avoid using /etc/hosts.
GET URI from webserver by IP address not matching hostname's IP
curl;http
Yes, it's possible. The --resolve option for curl does what you want:--resolve <host:port:address>Provide a custom address for a specific host  and  port  pair.                Using  this, you can make the curl requests(s) use a specified                address and prevent the otherwise normally resolved address to                be used. Consider it a sort of /etc/hosts alternative provided                on the command line. The port number should be the number used                for  the specific protocol the host will be used for. It means                you need several entries if you want to  provide  address  for                the same host but different ports.This  option  can be used many times to add many host names to                resolve.(Added in 7.21.3)ExampleRequest /foo from 192.0.2.111 as www.example.com. (Requests for www.example.com on port 80 are mapped to 192.0.2.111 by curl.)curl --resolve www.example.com:80:192.0.2.111 http://www.example.com/foo