I want my Python script to access a URL through an IP specified in the script instead of through the default DNS for the domain. Basically I want the equivalent of adding an entry to my /etc/hosts file, but I want the change to apply only to my script instead of globally on the whole server. Any ideas?
Share
Whether this works or not will depend on whether the far end site is using HTTP/1.1 named-based virtual hosting or not.
If they’re not, you can simply replace the hostname part of the URL with their IP address, per @Greg’s answer.
If they are, however, you have to ensure that the correct
Host:header is sent as part of the HTTP request. Without that, a virtual hosting web server won’t know which site’s content to give you. Refer to your HTTP client API (Curl?) to see if you can add or change default request headers.