这是一个开箱即用的PHP接口,输入域名或IP即可实时检测连通性、查询IP归属地,并自动生成带有延迟和地理位置信息的可视化图片。成功时直接输出图片,失败则返回标准JSON。适用于监控面板、状态页面及机器人消息推送。
图片版Ping接口源码(PHP)
这是一个自用的Ping图片版接口,只需将压缩包丢到服务器即可使用。
请求示例
域名/index.php?url=要Ping的IP或域名例如:
xxx.com/index.php?url=8.8.8.8主要功能特点:
-
输入处理
-
通过
url参数接收域名或 IP 地址。 -
自动规范化输入(去除空白、补充
http://前缀、提取主机名),无效输入默认回退到127.0.0.1。
-
-
IP 解析与延迟探测
-
若输入为域名,通过
gethostbyname和 DNS 记录解析出真实 IP。 -
使用
fsockopen对目标主机(优先尝试 443 端口,其次 80 端口)进行多次连接测试,计算每次连接耗时,最终返回最小、最大延迟以及所有样本值。
-
-
地理位置查询
-
对解析到的 IP,依次调用
ip-api.com(纯文本格式)和ipinfo.io(JSON 格式)两个免费服务获取归属地信息。 -
采用多服务备用机制,任一成功即返回结果,提高可用性。
-
-
图片生成输出
-
如果连通性检测成功,将“域名、IP、所属地、延迟”四行文字动态绘制到随机选取的背景图片(1~9.png)上。
-
文字颜色按行区分,使用指定字体(若字体文件缺失则使用系统默认字体)。
-
最终输出为 JPEG 图片,可直接嵌入网页或作为 API 调用结果。
-
-
异常与错误处理
-
若无法连通或解析失败,返回 JSON 格式的错误信息(含状态码、详情)。
-
全局捕获
Throwable异常,避免因意外错误导致空白输出,并返回明确的服务器错误信息。
-
-
安全措施
-
禁用错误显示(
error_reporting(0))。 -
设置跨域允许(
Access-Control-Allow-Origin: *)、内容安全策略(default-src 'self')及防 MIME 类型嗅探头,增强接口安全性。
-
-
部署与使用
-
只需将源码及配套图片、字体文件放入服务器,即可通过
index.php?url=目标地址调用。 -
成功时直接输出图片,失败时返回 JSON,便于二次开发或前端调用。
-
该接口适合需要快速获取网站/IP 状态并生成可视化结果的场景,例如监控面板、聊天机器人等。


