Force CURL to place request to a specific IP



Published: 2019-04-01 14:02:05 +0000
Categories: BASH,

Language

BASH

Description

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

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

Keywords

curl, SNI, resolve,

Latest Posts

Urldecode string (LUA)
FFMPEG Convert YUV444p to YUV420p (BASH)
Forcing FFMPEG to honour segment length in HLS Stream Creator (BASH)
Force CURL to place request to a specific IP (BASH)
Set a variable only if it is undefined (Javascript)
Ignore query string with Nginx caching proxy (NGinx)
Get breakdown of UK and non-UK votes for a Parliamentary Petition (Python)
Decompress Mozilla Firefox jsonlz4 bookmark backup files (Python)
Setting Git author details for a single repo (Git)
Checking Virtual Machine Resource Allocations with Libvirt (BASH)

Copyright © 2019 Ben Tasker | Sitemap | Privacy Policy
Available at snippets.bentasker.co.uk and snippets.6zdgh5a5e6zpchdz.onion