Como obter o IP do Host que fez a chamada curl

20/07/2018

0

Bom dia

Preciso de ajuda na seguinte situação.

Um usuário U acessa o index.php que está no Servidor A.

O index.php do Servidor A faz a seguinte chamada de uma função que se encontra no Servidor B:

$ch = curl_init();
						
$p = array(((isset($relSint['mov'])) ? $relSint['mov'] : array('00:00:00')), 'maxDigitsHour' => 3);
$postData = array(
               'key' => '{. . .}',
	       'function' => 'NomeDaFuncao',
	       'data' => json_encode($p) 
);
curl_setopt_array($ch, array(
		CURLOPT_URL => 'https://Servidor_B/',
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_POST => true,
		CURLOPT_POSTFIELDS => $postData
));
$output = curl_exec($ch);
$out = json_decode($output, true);




Como faço para que o Servidor_B obtenha alguma identificação exclusiva do Servidor A, Tipo endereço IP, ou hostname, ou algum código, ou algum hash de forma que o Servidor_B saiba que foi o Servidor A quem fez a chamada e não um outro servidor qualquer. Eu não quero o IP do Usuário U não.

Muito Obrigado por qualquer ajuda.
Guilherme Vasconcellos

Guilherme Vasconcellos

Responder

Post mais votado

31/07/2018

Se o servidor for Unix ou Linux recomendo utilizar um SSH com private/public key authentication que é muito mais seguro.

Ou você pode fazer o Servidor A tentar se autenticar no servidor B gerando uma chave temporária no servidor B.
Quando o servidor A realizar a chamada passa essa chave que irá durar 10 minutos por exemplo.
Algo parecido com o OAuth funciona.

Você pode tentar olhar no header do HTTP mas não é seguro.
O header é o X-Forwarded-For

Carlos Augusto

Carlos Augusto
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar