字
字节笔记本
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',
});方法四:在线工具
如果不想写代码,可以使用在线服务:
- unshorten.me:https://unshorten.me
- expandurl.com:https://expandurl.com
直接粘贴短链接即可获取真实地址。
批量处理场景
如果需要批量解析多个短链接,可以使用以下脚本:
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注意事项
- 请求频率:大量请求时建议添加延迟,避免被限制
- 链接失效:部分短链接可能已过期或被封禁
- 安全性:解析后的链接可能存在风险,建议进行安全检查
- 隐私保护:短链接可能包含追踪参数,注意隐私泄露风险
总结
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| curl -I | 快速查看 | 简单快捷 | 需要手动提取 |
| curl -Lw | 脚本自动化 | 直接输出最终URL | 需要处理重定向 |
| fetch API | Web 应用 | 原生支持 | 受 CORS 限制 |
| 在线工具 | 偶尔使用 | 无需安装 | 不适合批量处理 |
根据具体需求选择合适的方法,日常开发中 curl 命令足以应对大部分场景。
分享: