В проекте ThinkPHP серверный вызов https://my.ipin.io/info проверяет исходящий IP, который сервер использует при выходе в интернет. Такой сценарий подходит для диагностики, проверки прокси и подтверждения региона cloud-сервера.
Описание API
Серверный вызов проверяет исходящий IP сервера и возвращает IP, страну, регион и город, с которыми сервер виден в публичной сети.
{"ip":"185.220.236.7","country":"TW","region":"Taiwan","city":"Taipei"}
Сценарии применения
Эти сценарии показывают ценность IP-интерфейса и четко разделяют IP сервера и IP посетителя.
- Эти сценарии показывают ценность IP-интерфейса и четко разделяют IP сервера и IP посетителя.
- Как проверить исходящий IP сервера в ThinkPHP
- Описание API
- Рекомендации по SEO и UX
Логика реализации
Перед реализацией определите инициатора запроса: серверные запросы возвращают IP сервера, браузерные — IP посетителя.
- Перед реализацией определите инициатора запроса: серверные запросы возвращают IP сервера, браузерные — IP посетителя.
- Серверный вызов проверяет исходящий IP сервера и возвращает IP, страну, регион и город, с которыми сервер виден в публичной сети.
- Все примеры ниже напрямую используют
https://my.ipin.io/info, комментарии и тексты интерфейса локализованы. - Контент по умолчанию должен быть полным и читаемым, а региональный контент — улучшением. Поисковые системы получают стабильный контент, а страница остается рабочей при сбое API.
Пример кода
Все примеры ниже напрямую используют https://my.ipin.io/info, комментарии и тексты интерфейса локализованы.
ThinkPHP Controller
<?php
namespace app\controller;
use app\BaseController;
class IpController extends BaseController
{
public function server()
{
$default = [
'ip' => 'Неизвестно',
'country' => 'Неизвестно',
'region' => 'Неизвестно',
'city' => 'Неизвестно',
];
try {
// Серверный вызов /info проверяет исходящий IP сервера.
$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 сервера</h2>
<p>IP:{$info.ip|default='Неизвестно'}</p>
<p>Country:{$info.country|default='Неизвестно'}</p>
<p>Region:{$info.region|default='Неизвестно'}</p>
<p>City:{$info.city|default='Неизвестно'}</p>
</div>
Рекомендации по SEO и UX
Контент по умолчанию должен быть полным и читаемым, а региональный контент — улучшением. Поисковые системы получают стабильный контент, а страница остается рабочей при сбое API.
Частые ошибки
Следующие проблемы влияют на точность статьи, применимость кода и доверие к описанию API.
- Следующие проблемы влияют на точность статьи, применимость кода и доверие к описанию API.
- Контент по умолчанию должен быть полным и читаемым, а региональный контент — улучшением. Поисковые системы получают стабильный контент, а страница остается рабочей при сбое API.
- Перед реализацией определите инициатора запроса: серверные запросы возвращают IP сервера, браузерные — IP посетителя.
- Эти сценарии показывают ценность IP-интерфейса и четко разделяют IP сервера и IP посетителя.
Итог
Серверный вызов проверяет исходящий IP сервера и возвращает IP, страну, регион и город, с которыми сервер виден в публичной сети.
Частые вопросы
Вопросы ниже подготовлены специально для этой статьи и напрямую связаны с реализацией.