Menu

DarioCapozzi.it

Risolvere un dominio senza DNS in PHP (no file hosts)

Può capitare di dover fare una richiesta ad un server che risponde ad un dominio non risolvibile tramite i DNS, oppure che, se tale dominio fosse risolto tramite DNS, la richiesta non verrebbe recapitata all’indirizzo IP desiderato.


La soluzione, tipicamente, si ottiene modificando il file hosts della macchina su cui viene eseguito lo script PHP. Purtroppo però, nella maggior parte dei casi, negli ambienti di hosting condiviso / VPS, non si ha accesso a tale file.
Vediamo quindi come poter effettuare una richiesta cURL tramite PHP, indicando come risolvere un particolare dominio.
Ecco un sample del codice:

Il codice è disponibile come screenshot a causa delle policy di ModSecurity

La parte interessante dello snippet precedente è la seconda riga, ovvero l’assegnazione delle proprietà CURLOPT_RESOLVE, che specifica come un determinato dominio debba essere risolto. Nell’esempio, viene specificato che le richieste rivolte al dominio www.dariocapozzi.it sulla porta 80 (ovvero tramite il protocollo http) devono essere destinate all’indirizzo 87.78.2.132.

In seguito, impostando la direttiva CURLOPT_URL, si specifica l’endpoint a cui fare la richiesta cURL.