.Net实现真实下载地址与迅雷、QQ旋风等下载地址转换

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: public string Index() { StringBuilder sb = new StringBuilder(); string OrgStr="http://down.
public string Index()
        {
            StringBuilder sb = new StringBuilder();
            string OrgStr="http://down.qq.com/ava/full/W_full/AVA_Client_Ver_1230_full.exe";
            string ThunderStr="thunder://QUFodHRwOi8vZG93bi5xcS5jb20vYXZhL2Z1bGwvV19mdWxsL0FWQV9DbGllbnRfVmVyXzEyMzBfZnVsbC5leGVaWg==";
            string QQdlStr="qqdl://aHR0cDovL2Rvd24ucXEuY29tL2F2YS9mdWxsL1dfZnVsbC9BVkFfQ2xpZW50X1Zlcl8xMjMwX2Z1bGwuZXhl";
            string FlashGetStr="flashget://W0ZMQVNIR0VUXWh0dHA6Ly9kb3duLnFxLmNvbS9hdmEvZnVsbC9XX2Z1bGwvQVZBX0NsaWVudF9WZXJfMTIzMF9mdWxsLmV4ZVtGTEFTSEdFVF0=&";
            string orgAddr = GetOriginalString(QQdlStr);//原地址
            sb.AppendFormat("{0}<br>", orgAddr);
            string thunderAddr = "AA" + orgAddr + "ZZ";
            thunderAddr = "thunder://" + EncodeBase64(thunderAddr);
            sb.AppendFormat("{0}<br>", thunderAddr);
            string qqdlAddr = "qqdl://" + EncodeBase64(orgAddr);
            sb.AppendFormat("{0}<br>", qqdlAddr);
            string flashGetAddr = string.Format("{0}{1}{0}", "[FLASHGET]", orgAddr);
            flashGetAddr = "flashget://" + EncodeBase64(flashGetAddr) + "&";
            sb.AppendFormat("{0}<br>", flashGetAddr);
            return sb.ToString();
        }
        public string EncodeBase64(string orgStr)
        {
            try
            {
                return Convert.ToBase64String(Encoding.Default.GetBytes(orgStr));
            }
            catch
            {
                return "";
            }
        }
        public string DecodeBase64(string encodeStr)
        {
            try
            {
                return Encoding.Default.GetString(Convert.FromBase64String(encodeStr));

            }
            catch
            {
                return "";
            }
        }

        public string GetOriginalString(string str)
        {
            string thunderPrefix="thunder://";
            string qqdlPrefix = "qqdl://";
            string flashgetPrefix = "flashget://";
            if(str.StartsWith("http://")||str.StartsWith("https://"))
            {
                return str;
            }
            else if (str.StartsWith(thunderPrefix))
            {
                string thunderAddr = str.Substring(thunderPrefix.Length);//去掉前缀
                thunderAddr = DecodeBase64(thunderAddr);//base64解码
                thunderAddr = thunderAddr.Substring(2, thunderAddr.Length - 4);//去掉前两个A,后两个Z
                return thunderAddr;
            }
            else if(str.StartsWith(qqdlPrefix))
            {
                string qqdlAddr = str.Substring(qqdlPrefix.Length);
                qqdlAddr = DecodeBase64(qqdlAddr);//base64解码
                return qqdlAddr;
            }
            else if (str.StartsWith(flashgetPrefix))
            {
                string flashgetAddr = str.Substring(flashgetPrefix.Length);
                flashgetAddr = flashgetAddr.Substring(0,flashgetAddr.Length-1);//去掉最后一个&号 
                flashgetAddr = DecodeBase64(flashgetAddr);
                flashgetAddr = flashgetAddr.Substring(10,flashgetAddr.Length-20);//去掉前后的[FLASHGET]
                return flashgetAddr;
            }
            return "";
        }


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
6月前
|
SQL 开发框架 前端开发
分享24个上传下载 和32个社区论坛ASP.NET源码,总有一款适合您
分享24个上传下载 和32个社区论坛ASP.NET源码,总有一款适合您
70 0
|
6月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
【OSTEP】分段(Segmentation) | 地址分段 | 带分段的地址转换
【OSTEP】分段(Segmentation) | 地址分段 | 带分段的地址转换
79 0
|
存储 前端开发 API
30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
|
6月前
|
运维 监控 网络协议
IPv6地址之间的转换技术:NAT66
【4月更文挑战第25天】
856 0
IPv6地址之间的转换技术:NAT66
|
3月前
|
C#
一款.NET开源、跨平台的DASH/HLS/MSS下载工具
一款.NET开源、跨平台的DASH/HLS/MSS下载工具
|
3月前
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
|
3月前
.NET Core 在其上下文中,该请求的地址无效。
.NET Core 在其上下文中,该请求的地址无效。
37 0
|
5月前
|
安全 程序员 Shell
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
|
6月前
|
运维 安全 网络架构
【专栏】NAT技术是连接私有网络与互联网的关键,缓解IPv4地址短缺,增强安全性和管理性
【4月更文挑战第28天】NAT技术是连接私有网络与互联网的关键,缓解IPv4地址短缺,增强安全性和管理性。本文阐述了五大NAT类型:全锥形NAT(安全低,利于P2P)、限制锥形NAT(增加安全性)、端口限制锥形NAT(更安全,可能影响协议)、对称NAT(高安全,可能导致兼容性问题)和动态NAT(公网IP有限时适用)。选择NAT类型需考虑安全性、通信模式、IP地址数量和设备兼容性,以确保网络高效、安全运行。
571 1