字节笔记本

2026年2月22日

Twitter 短链接解析:t.co 真实地址获取方法

t.co 是 Twitter(现 X)的短链接服务,用于缩短推文中的 URL。在开发过程中,我们经常需要获取这些短链接的真实地址。本文介绍几种实用的解析方法。

方法一:curl 命令行(最简单)

使用 curl 的 -I 参数只获取响应头,从 Location 字段中读取真实地址:

bash
curl -I "https://t.co/xxxxx" | grep -i location

输出示例:

location: https://www.example.com/article/12345

方法二:获取最终地址

如果需要直接显示最终跳转后的 URL:

bash
curl -Ls -o /dev/null -w "%{url_effective}" "https://t.co/xxxxx"

参数说明:

  • -L:跟随重定向
  • -s:静默模式
  • -o /dev/null:丢弃响应体
  • -w "%{url_effective}":输出最终有效的 URL

方法三:Node.js / fetch

在 JavaScript/TypeScript 项目中使用 fetch API:

javascript
const response = await fetch("https://t.co/xxxxx", {
  redirect: "follow",
});
console.log(response.url); // 最终真实地址

浏览器扩展中的注意事项

Content Script 可能遇到 CORS 限制,建议在 Background Script 中执行:

typescript
// entrypoints/background.ts
browser.runtime.onMessage.addListener(async (message) => {
  if (message.type === 'resolve-url') {
    const response = await fetch(message.url, {
      method: 'HEAD',
      redirect: 'follow',
    });
    return response.url;
  }
});

Content Script 通过消息通信调用:

typescript
const realUrl = await browser.runtime.sendMessage({
  type: 'resolve-url',
  url: 'https://t.co/xxxxx',
});

方法四:在线工具

如果不想写代码,可以使用在线服务:

直接粘贴短链接即可获取真实地址。

批量处理场景

如果需要批量解析多个短链接,可以使用以下脚本:

bash
#!/bin/bash

urls=(
  "https://t.co/abc123"
  "https://t.co/def456"
  "https://t.co/ghi789"
)

for url in "${urls[@]}"; do
  real_url=$(curl -Ls -o /dev/null -w "%{url_effective}" "$url")
  echo "$url -> $real_url"
done

注意事项

  1. 请求频率:大量请求时建议添加延迟,避免被限制
  2. 链接失效:部分短链接可能已过期或被封禁
  3. 安全性:解析后的链接可能存在风险,建议进行安全检查
  4. 隐私保护:短链接可能包含追踪参数,注意隐私泄露风险

总结

方法适用场景优点缺点
curl -I快速查看简单快捷需要手动提取
curl -Lw脚本自动化直接输出最终URL需要处理重定向
fetch APIWeb 应用原生支持受 CORS 限制
在线工具偶尔使用无需安装不适合批量处理

根据具体需求选择合适的方法,日常开发中 curl 命令足以应对大部分场景。

分享: