Como verificar o IP de saída do servidor no ThinkPHP

Autor:Lisa Farrell · 2026-06-01

Em um projeto ThinkPHP, uma chamada server-side para https://my.ipin.io/info verifica o IP de saída usado pelo servidor ao acessar a internet pública. Esse caso serve para diagnóstico, verificação de proxy e confirmação de região cloud.

Explicação da API

A chamada server-side verifica o IP de saída do servidor e retorna IP, país, região e cidade visíveis na rede pública.

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

Cenários de aplicação

Esses cenários mostram o valor da interface de informações IP e separam claramente IP do servidor e IP do visitante.

  • Esses cenários mostram o valor da interface de informações IP e separam claramente IP do servidor e IP do visitante.
  • Como verificar o IP de saída do servidor no ThinkPHP
  • Explicação da API
  • Recomendações de SEO e UX

Lógica de implementação

Antes de implementar, identifique quem faz a requisição: requisições do servidor retornam IP do servidor, requisições do navegador retornam IP do visitante.

  • Antes de implementar, identifique quem faz a requisição: requisições do servidor retornam IP do servidor, requisições do navegador retornam IP do visitante.
  • A chamada server-side verifica o IP de saída do servidor e retorna IP, país, região e cidade visíveis na rede pública.
  • Todos os exemplos abaixo usam diretamente https://my.ipin.io/info, com comentários e textos de interface localizados.
  • O conteúdo padrão deve permanecer completo e legível, enquanto o conteúdo regional atua como melhoria. Buscadores rastreiam conteúdo estável e a página continua utilizável se a API falhar.

Exemplo de código

Todos os exemplos abaixo usam diretamente https://my.ipin.io/info, com comentários e textos de interface localizados.

ThinkPHP Controller

<?php
namespace app\controller;

use app\BaseController;

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

        try {
            // Chamada server-side para /info: verifica o IP de saída do 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 saída do servidor</h2>
  <p>IP:{$info.ip|default='Desconhecido'}</p>
  <p>Country:{$info.country|default='Desconhecido'}</p>
  <p>Region:{$info.region|default='Desconhecido'}</p>
  <p>City:{$info.city|default='Desconhecido'}</p>
</div>

Recomendações de SEO e UX

O conteúdo padrão deve permanecer completo e legível, enquanto o conteúdo regional atua como melhoria. Buscadores rastreiam conteúdo estável e a página continua utilizável se a API falhar.

Erros comuns

Os pontos abaixo afetam a precisão do artigo, a usabilidade do código e a credibilidade da explicação da API.

  • Os pontos abaixo afetam a precisão do artigo, a usabilidade do código e a credibilidade da explicação da API.
  • O conteúdo padrão deve permanecer completo e legível, enquanto o conteúdo regional atua como melhoria. Buscadores rastreiam conteúdo estável e a página continua utilizável se a API falhar.
  • Antes de implementar, identifique quem faz a requisição: requisições do servidor retornam IP do servidor, requisições do navegador retornam IP do visitante.
  • Esses cenários mostram o valor da interface de informações IP e separam claramente IP do servidor e IP do visitante.

Resumo

A chamada server-side verifica o IP de saída do servidor e retorna IP, país, região e cidade visíveis na rede pública.

Perguntas frequentes

As perguntas abaixo foram escritas especificamente para este artigo e estão diretamente ligadas à implementação.

Pergunta:Por que distinguir o lado da requisição?
Resposta:Porque chamada do servidor representa o servidor, e chamada do navegador representa o visitante.
Pergunta:Por que manter conteúdo padrão?
Resposta:Ele protege SEO, primeira renderização e casos em que a API não responde.
Pergunta:Posso adicionar mais países?
Resposta:Sim, adicionando códigos de país à tabela de mapeamento.
Pergunta:A lógica altera o backend?
Resposta:Não, a menos que você adicione lógica server-side separada.
Pergunta:O que fazer se a API falhar?
Resposta:A página deve manter conteúdo, link ou mensagem padrão.