自动下载完整的.NET源代码
http://tech.ddvip.com 2008年01月24日 社区交流
本文详细介绍自动下载完整的.NET源代码
1. Definitions
The terms "reproduce," "reproduction" and "distribution" have the same meaning here as under U.S. copyright law.
解决方法很简单,直接用正则表达式找到里面一个随机生成的id,然后程序自动Accept即可,代码类似
private static Regex _accept = new Regex(@"IDYES:Accept:Accept=(w*)");
if (task._auth)
{
}
else
{
string license = Encoding.Unicode.GetString(task._buf, 0, read);
Match m = _accept.Match(license);
if (m.Success)
{
task._auth = true;
string id = m.Groups[1].Value;
_logger.DebugFormat("Accept license id {0} for {1}", id, task._request.Address);
Uri uri = new Uri(string.Format("{0}?Accept={1}", task._uri.ToString(), id));
task.Restart(uri);
}
}
其他的基本上没什么需要说明的,就是很基本的http请求调用啥的,呵呵
至于从.pdb里面获取文件名列表,需要调用dbghelp.dll里面的一组api
SymInitializeW/SymCleanup用来初始化和析构symbol engine
SymLoadModuleExW/SymUnloadModule64用来加载要便利源代码的模块
SymEnumSourceFilesW用来遍历一个有.pdb符号且包含已索引源码的列表
SymGetSourceFileW和SymGetSourceFileTokenW/SymGetSourceFileFromToken两套API,都可以用来获得特定源码的下载URL,然后把这个地址用上面两个方法处理一下即可。
注意:目前的实现只是个原型,需要手动下载和配置.pdb文件,并且直接发起大量的异步http请求,对网速慢的朋友,可能需要用 -i 参数增加超时时间(确实15分钟)
责编:豆豆技术应用
- asp.net 视频教程
- asp.net 数据库编程
- asp.net 入门教程
- ado.net 教程
- asp.net 基础讲座
- asp.net ajax 教程
- asp.net ajax 入门系列
- asp.net 控件开发基础
- asp.net 2.0 服务器控件
- asp.net 2.0 教程
- asp.net 控件开发
- asp.net 类
- asp.net 分页
- asp.net 页面缓存
- asp.net 常见问题解决
- asp.net 2.0 母版页
- asp.net SQL Server
- asp.net 错误
- asp.net 事件
- asp.net 组件
- asp.net 性能
- asp.net 文件上传
- 更多asp.net专题……