Effectuer une requête http en utilisant une adresse IP spécifique du poste

L’exemple ci-dessous présente une manière d’effectuer une requête http depuis une adresse IP local spécifique (192.168.1.3). La requête effectuée permet de récupérer l’adresse IP publique.

function Bind-IPEndPointCallback([System.Net.IPAddress]$ip,$port)
{
    New-Object -TypeName System.Net.IPEndPoint $ip, $port
}
$localIP = 192.168.1.3
$request = [System.Net.HttpWebRequest]::Create("http://myexternalip.com/raw")
$request.ServicePoint.BindIPEndPointDelegate = { (Bind-IPEndPointCallback -ip $localIP -port 0) }
$response = $request.GetResponse()
$responseStream = $response.GetResponseStream()
$readStream = New-Object System.IO.StreamReader $responseStream
$data = $readStream.ReadToEnd()
Write-Host $data

Sources : https://stackoverflow.com/questions/12332971/how-to-send-request-using-a-specific-ip-address-to-an-website-with-powershell#answer-12333770