笨猫博客

  • 🍟首页
  • 🍘目录
    • 🥝VPS教程
    • 🍾猫玩技术
    • 🍹干货分享
    • 🍏软件分享
    • 🍩一只猫
  • 🍋工具
    • 🌽IP路由追踪
    • 🍐域名Whois查询
    • 🥘域名被墙查询
    • 🍧IP正常检测
    • 🔥IP端口检测
    • 🍆短网址
    • 🐟VIP音乐播放
    • 🍯KMS激活
  • 🍓链接
  • 🍪联系
  • 🍱登录
    • 🥦登录
    • 🍒注册
关注互联网,生活,音乐,乐此不疲的一只笨猫
  1. 首页
  2. 猫玩技术
  3. 正文

PHP 实现“万能”的短网址还原

2021-02-27 4971点热度 0人点赞 0条评论

常见的短网址都是通过 301 或 302 跳转的方式实现重定向到目标网站的,因此我们可以使用 PHP 的 curl_getinfo 来取得 header 中的重定向地址,也就是短网址对应的原始网址(嗯,原理就是这么简单……

完整的函数代码如下:

/***
 * 万能短网址还原函数
 * @param $shortUrl 短网址
 * @return 原始网址 | 空(还原失败或非短网址)
 */
function restoreUrl($shortUrl) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $shortUrl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0');
    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_NOBODY, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 15);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
    $data = curl_exec($curl);
    $curlInfo = curl_getinfo($curl);
    curl_close($curl);
    if($curlInfo['http_code'] == 301 || $curlInfo['http_code'] == 302) {
        return $curlInfo['redirect_url'];
    }
    return '';
}
使用方法:
$shortUrl = 'https://url.cn/54VbB8h';    // 要还原的短网址
$orinalUrl = restoreUrl($shortUrl);
if($orinalUrl) {
    echo "短网址 {$shortUrl} 的还原结果:{$orinalUrl}";
} else {
    echo "短网址还原失败";
}
经过实测,该函数可以顺利实现下列短网址的还原:
  • https://url.cn/54VbB8h
  • http://t.cn/AiR8Qoyp
  • http://uee.me/cAhq8
  • http://rrd.me/eWCg3
  • https://sohu.gg/MSYnnHo02
  • https://dwz.cn/I5l2YWKL
  • http://1t.click/bceu
  • http://dwz.win/qMp
  • http://qq.cn.hn/e8N

不过,诸如 https://m.tb.cn/h.ew5NAEA 这种在前端使用 js 跳转的短网址就无能为力了

标签: PHP
最后更新:2021-02-24

笨猫

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
AcePanel(原耗子面板)3.0 正式发布 Docker 自托管 Shlink 短链服务 Linux BBR V3 管理脚本:支持arm和x86-64轻松加速网络,让服务器飞起来! 船新的PT刷流脚本,傻瓜式一键部署好完整刷流环境VT+QB439+Filebrowser+系统优化 EnsoAI:让多个 Agents 并行开发 [多路智能|并行穿梭] 开源输入法:支持跨设备剪贴板同步与验证码提取
AcePanel(原耗子面板)3.0 正式发布EnsoAI:让多个 Agents 并行开发 [多路智能|并行穿梭]船新的PT刷流脚本,傻瓜式一键部署好完整刷流环境VT+QB439+Filebrowser+系统优化Linux BBR V3 管理脚本:支持arm和x86-64轻松加速网络,让服务器飞起来!Docker 自托管 Shlink 短链服务
下载神器 Internet Download Manager v6.32 build 8 特别版 子比主题7.4版本改hosts绕过授权方法 一键安装Aria2+Aria2Ng+OneIndex 无需域名 很平静很平静 一个思杰马克丁全套破解软件资源收集站点 ServerStatus 多服务器 云探针 云监控模板
最近评论
提拉米苏 发布于 2 周前(01月18日) App首页会崩溃
vioulo 发布于 4 周前(01月07日) 之前以为 fcitx5 只能再 linux 上用来的 :smile:
dk 发布于 4 个月前(09月22日) 哈哈哈哈
天天下载Ttzip 发布于 5 个月前(09月15日) 很棒的网站!感谢分享,谢谢站长!!@天天下载Ttzip
诗音 发布于 5 个月前(08月29日) 时间改到2099年在暂停更新也可以
标签
elliptictrue100.10.02
BLOG ChatGPT Chrome CloudFlare DirectAdmin github Godaddy google kloxo Linux OneDrive OneIndex PHP QQ shadowsocks SNS ssh Typecho VPS web2.0 whmcs Windows wordpress 一键脚本 下载 免费 博客 图文教程 图标 图片 域名 头像 奥运 宝塔面板 插件 教程 日记 有趣 浏览器 游戏 猫 生活 电影 百度 网站 视频 设计 软件 阿里云盘 音乐
好友
  • glzjin's blog glzjin's blog
  • ZAERA博客
  • 冰沫记
  • 奇它博客
  • 猫腻‘s Blog
  • 猫饭
  • 肥宅之家
  • 萌博
  • 野路子程序员

COPYRIGHT © 2022 笨猫博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang