笨猫博客

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

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

2021-02-27 2876点热度 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
取消回复

最新 热点 随机
最新 热点 随机
如何注册谷歌账号?遇到“此电话号码无法用于进行验证”怎么办 HostPanel开源免费面板,真离线不联网 图床程序: CheveretoChina V4 发布! 图床浏览器插件,支持主流图床上传 网站使用宝塔面板服务器cpu占用100%排查方法和解决方案 Chrome插件-很厉害的沉浸式翻译
图床浏览器插件,支持主流图床上传如何注册谷歌账号?遇到“此电话号码无法用于进行验证”怎么办图床程序: CheveretoChina V4 发布!HostPanel开源免费面板,真离线不联网
deskview:列表排列桌面图标 入住开心网!! Cloudflare 添加指定 节点 IP 记录 韩梅梅结婚了,新郎不是李雷 看懂火星文,听懂火星语 Zdir 实用的目录列表程序
标签聚合
OneDrive 有趣 VPS wordpress 日记 google 音乐 域名
最近评论
笨猫 发布于 1 天前(03月22日) Q:57八六7199
一帧秒创 发布于 1 天前(03月22日) 你好,商务合作怎么联系,可以把联系方式发我邮箱
ckqing 发布于 2 天前(03月21日) 就要这个了
ckqing 发布于 2 天前(03月21日) T
天天下载 发布于 1 周前(03月15日) 感谢分享,谢谢站长!!@天天下载
好友
  • glzjin's blog glzjin's blog
  • ZAERA博客
  • 冰沫记
  • 博客导航
  • 奇它博客
  • 彩虹Smiling的Blog
  • 热闹网
  • 猫腻‘s Blog
  • 猫饭
  • 肥宅之家
  • 萌博
  • 野路子程序员

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

Theme Kratos Made By Seaton Jiang