Force CURL to place request to a specific IP (BASH)
Back when everything was plain HTTP, to place a request via a specific machine you'd just pass curl that machine in the URL and then set a Host header for whatever domain you wanted that machine to try and serve. With HTTPs, though, you may need the SNI name to also be correct (not just to avoid certificate errors, but because the server may change behaviour based on the SNI name)
This snippet details how to force curl to resolve a domain+port pair to a specific IP
Details
- Language: BASH
Snippet
curl -v https://[Domain Name]/ --resolve [Domain Name]:[Port]:[IP]
Usage Example
# Connect to 127.0.0.1 using SNI name www.example.com and place a request for the root domain of www.example.com
curl -v https://www.example.com/ --resolve www.example.com:443:127.0.0.1