Comprobar la IP de salida del servidor en ThinkPHP

Autor:Lisa Farrell · 2026-06-01

En un proyecto ThinkPHP, una solicitud del servidor a https://my.ipin.io/info comprueba la IP de salida usada al acceder a Internet. Este caso sirve para diagnóstico, revisión de proxies y confirmación de región cloud.

Explicación de la API

Una llamada del servidor comprueba la IP de salida del servidor y devuelve la IP, el país, la región y la ciudad expuestos por ese servidor en la red pública.

{"ip":"185.220.236.7","country":"TW","region":"Taiwan","city":"Taipei"}

Casos de uso

Estos casos muestran el valor de la interfaz de información IP y separan claramente IP del servidor e IP del visitante.

  • Estos casos muestran el valor de la interfaz de información IP y separan claramente IP del servidor e IP del visitante.
  • Comprobar la IP de salida del servidor en ThinkPHP
  • Explicación de la API
  • Recomendaciones SEO y UX

Lógica de implementación

Antes de implementar, identifique el solicitante: las solicitudes del servidor devuelven IP del servidor y las del navegador devuelven IP del visitante.

  • Antes de implementar, identifique el solicitante: las solicitudes del servidor devuelven IP del servidor y las del navegador devuelven IP del visitante.
  • Una llamada del servidor comprueba la IP de salida del servidor y devuelve la IP, el país, la región y la ciudad expuestos por ese servidor en la red pública.
  • Todos los ejemplos siguientes usan directamente https://my.ipin.io/info, con comentarios y textos de interfaz localizados.
  • El contenido predeterminado debe seguir completo y legible, mientras el contenido regional actúa como mejora. Los buscadores rastrean contenido estable y la página sigue siendo útil si falla la API.

Ejemplo de código

Todos los ejemplos siguientes usan directamente https://my.ipin.io/info, con comentarios y textos de interfaz localizados.

ThinkPHP Controller

<?php
namespace app\controller;

use app\BaseController;

class IpController extends BaseController
{
    public function server()
    {
        $default = [
            'ip' => 'Desconocido',
            'country' => 'Desconocido',
            'region' => 'Desconocido',
            'city' => 'Desconocido',
        ];

        try {
            // Llamada del servidor a /info: comprueba la IP de salida del servidor.
            $json = @file_get_contents('https://my.ipin.io/info');
            $data = json_decode($json, true);
            $info = is_array($data) ? array_merge($default, $data) : $default;
        } catch (\Throwable $e) {
            $info = $default;
        }

        return view('server_ip', ['info' => $info]);
    }
}

server_ip.html

<div class="ip-card">
  <h2>IP de salida del servidor</h2>
  <p>IP:{$info.ip|default='Desconocido'}</p>
  <p>Country:{$info.country|default='Desconocido'}</p>
  <p>Region:{$info.region|default='Desconocido'}</p>
  <p>City:{$info.city|default='Desconocido'}</p>
</div>

Recomendaciones SEO y UX

El contenido predeterminado debe seguir completo y legible, mientras el contenido regional actúa como mejora. Los buscadores rastrean contenido estable y la página sigue siendo útil si falla la API.

Errores comunes

Los siguientes puntos afectan la precisión del artículo, la utilidad del código y la credibilidad de la explicación de la API.

  • Los siguientes puntos afectan la precisión del artículo, la utilidad del código y la credibilidad de la explicación de la API.
  • El contenido predeterminado debe seguir completo y legible, mientras el contenido regional actúa como mejora. Los buscadores rastrean contenido estable y la página sigue siendo útil si falla la API.
  • Antes de implementar, identifique el solicitante: las solicitudes del servidor devuelven IP del servidor y las del navegador devuelven IP del visitante.
  • Estos casos muestran el valor de la interfaz de información IP y separan claramente IP del servidor e IP del visitante.

Resumen

Una llamada del servidor comprueba la IP de salida del servidor y devuelve la IP, el país, la región y la ciudad expuestos por ese servidor en la red pública.

Preguntas frecuentes

Las preguntas siguientes fueron redactadas específicamente para este artículo y se relacionan directamente con la implementación.

Pregunta:¿Por qué importa el lado que hace la solicitud?
Respuesta:Porque una llamada del servidor representa al servidor y una llamada del navegador representa al visitante.
Pregunta:¿Por qué conservar contenido predeterminado?
Respuesta:Protege SEO, primer render y los casos en que la API no responde.
Pregunta:¿Puedo agregar más países?
Respuesta:Sí, agregando códigos de país en la tabla de mapeo.
Pregunta:¿La lógica modifica el backend?
Respuesta:No, salvo que agregue lógica del servidor por separado.
Pregunta:¿Qué pasa si falla la API?
Respuesta:La página debe conservar el contenido, enlace o mensaje predeterminado.