9
votes

PHP CURL, récupération de l'adresse IP du serveur

J'utilise PHP Curl pour envoyer une demande à un serveur. De quoi dois-je faire pour que la réponse du serveur comprendra l'adresse IP de ce serveur?


0 commentaires

6 Réponses :


0
votes

AFAIK Vous ne pouvez pas "forcer" le serveur pour vous envoyer son adresse IP dans la réponse. Pourquoi ne pas le regarder directement? (Check Cette question / réponses pour comment faire cela à partir de PHP )


1 commentaires

Le serveur est composé de plusieurs instances de fonctionnement. J'ai donc besoin de déterminer exactement quel serveur I connecté et répondit pour une demande de courbure particulière.



3
votes

Je ne pense pas qu'il y ait un moyen d'obtenir cette adresse IP directement à partir de CURL.
Mais quelque chose comme ça pourrait faire le truc:

Premièrement, faites la demande de courbure et utilisez curl_getinfo pour obtenir l'URL "réelle" récupérée - c'est-à-dire parce que la première URL peut rediriger à une autre, et que vous souhaitez la dernière: xxx

Ensuite, utilisez parse_url pour extraire la partie "hôte" de cette URL finale: xxx

et, enfin, utilisez gethostbyname pour obtenir l'adresse IP correspondant à cet hôte: xxx

puits ...
C'est une solution ^^ Il devrait fonctionner dans la plupart des cas, je suppose - bien que je ne sois pas sûr que vous obtiendriez toujours le résultat "correct" s'il y a une sorte de mécanisme équilibrant de charge ...


0 commentaires

3
votes
echo '<pre>';
print_r(gethostbynamel($host));
echo '</pre>';
That will give you all the IP addresses associated with the given host name.

0 commentaires

21
votes

Ceci peut être fait avec CURL, avec l'avantage de ne pas avoir d'autre trafic réseau en plus de la demande / réponse de la courroie. Les demandes DNS sont effectuées par CURL pour obtenir les adresses IP, que l'on peut trouver dans le rapport Verbose. Donc:

  • Activer Curlopt_verbose.
  • Direct Curlopt_sderr à un " PHP: // TEMP " Ressource d'enveloppe de flux.
  • en utilisant preg_match_all () , analyser le Contenu de la chaîne de la ressource pour la propriété intellectuelle adresse (es).
  • Les adresses de serveur répondant seront être dans la clé zéro de la matrice de match Sous-carré.
  • l'adresse du serveur livrant le contenu (en supposant un succès demande) peut être récupéré avec fin () . Tout intermédiaire Les adresses des serveurs seront également dans la sous-carrée, dans l'ordre.

    démo: xxx


0 commentaires

-1
votes

J'ai utilisé celui-ci xxx

à partir d'ici: http://php.net/manual/fr/function.gethostbynamel.php


0 commentaires

11
votes

Je pense que vous devriez pouvoir obtenir l'adresse IP du serveur avec: xxx


0 commentaires