我想做像迅雷一样的软件
用脚本调用COM把URL传到我自己的程序
做到这里发现很多论坛的URL都不是真实的URL
Google了一下大致都说是要看http数据包
也抓了来看
但是把所有包都看透了还是没有找到我要的http://…… .torrent的真实URL
请问还有别的方法可以实现吗?
非常感谢
用脚本调用COM把URL传到我自己的程序
做到这里发现很多论坛的URL都不是真实的URL
Google了一下大致都说是要看http数据包
也抓了来看
但是把所有包都看透了还是没有找到我要的http://…… .torrent的真实URL
请问还有别的方法可以实现吗?
非常感谢
但我已经实现把URL传进我自己的程序里了,现在问题是在很多网站的下载链接显示出来的URL都不是真实的,例如: http://dl1.www2.btchina.net/download.php?s=5284695909d28b74&attachmentid=1151897
后缀名不是.torrent,这样一来没办法用我自己写的程序下载,
请问要如何得到真正的文件链接,迅雷,flashget等软件都可以做到的,感谢了
您的意思是迅雷的资源服务器上面搜集了各种各样的种子档案吗
他会先根据档名去搜索吗?
所以网页上显示的URL大多数是参考用?
这样一个服务器要实现的流程大概如何?
小弟很菜..
还请高手们多多赐教
CString CDownInfoDlg::DownURL(CString strURL)
{
CInternetSession m_Session("DigitalTitan");
CHttpFile* pFile=NULL;
CException* e;
TCHAR szTempPath[MAX_PATH],szTempFile[MAX_PATH];
DWORD dwResult=::GetTempPath(MAX_PATH,szTempPath);
CString strURLPath;
GetTempFileName(szTempPath,_T("DigitalTitan_"),0,szTempFile);
strURLPath=szTempFile;
TRY
{
pFile=(CHttpFile*)m_Session.OpenURL(strURL);
}
CATCH_ALL(e)
{
pFile=NULL;
AfxMessageBox("URL地址不合法",MB_ICONINFORMATION);
return "";
}
END_CATCH_ALL
if(pFile)
{
DWORD dwStatus;
DWORD dwBufLen=sizeof(dwStatus);
BOOL bSuccess=pFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,&dwStatus,&dwBufLen);
if(bSuccess&&dwStatus>=200&&dwStatus<300)
{
CStdioFile m_File;
if(m_File.Open(strURLPath,CFile::modeWrite|CFile::modeCreate|CFile::typeBinary))
{
BYTE pBuf[1024];
DWORD dwRead;
do
{
dwRead=pFile->Read(pBuf,1024);
m_File.Write(pBuf,dwRead);
}
while(dwRead>0);
m_File.Close();
}
}
pFile->Close();
delete pFile;
}
else
{
m_Session.Close();
}
return strURLPath;
}
我的问题正是你理解的那样
但是这代码我刚试了下,产生这样的URL?C:\DOCUME~1\Elsie\LOCALS~1\Temp\Dig3C.tmp
我是传了这个进去试http://dl1.www2.btchina.net/download.php?s=5284695909d28b74&attachmentid=1151897
请帮忙我看下..
我现在初步是要把种子.torrent档下载下来,还没到要下载档案本身,URL应该是有解的吧?
或者给我点思路,感谢
客户端->服务器:
GET /download.php?s=8c1c67f0da10360b&attachmentid=1221891 HTTP/1.1\r\n
Request Method: GET
Request URI: /download.php?s=8c1c67f0da10360b&attachmentid=1221891
Request Version: HTTP/1.1
Accept: */*\r\n
Referer: http://bt1.btchina.net/yycaf/\r\n
Accept-Language: zh-tw\r\n
Accept-Encoding: gzip, deflate\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6; .NET CLR 2.0.50727; InfoPath.1; CIBA)\r\n
Host: nnv.dl1.btchina.net\r\n
Connection: Keep-Alive\r\n
Cookie: default_search_line=0\r\n服务器->客户端
HTTP/1.1 200 OK\r\n
.
.
Content-disposition: filename=www.yycaf.net[\304\332\326\372\326\256\315\365.10][yycaf\326\306\327\367]-caf.torrent\r\n
此封包的data就是我要的torrent档的内容我尝试制造一样的GET数据包发到服务器想直接得到torrent档内容,结果返回403 forbidden,表示这方法行不通…
若是URL重定向是否在数据包里会有真实的URL,
能够透过VC代码找出URL的真实地址吗
非常困惑阿…请达人给我指点
GET /download.php?s=de813a98848fc890&attachmentid=1215934 HTTP/1.1\r\n
Accept: */*\r\n
Cache-Control: no-cache\r\n
Connection: Keep-Alive\r\n
Cookie: default_search_line=0; btchina_sid=951acf783d14c2bb263c31afb26ee3057c39d53191c323eb\r\n
Host: dl2.www2.btchina.net\r\n
Pragma: no-cache\r\n
Referer: http://search3.btchina.net/btsearch.php?query=%BA%AB%BE%E7&type=0\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)\r\n
\r\n成功发送出去了但是服务器没有任何反应,请问会是哪个环节不通过,cookie吗?
再请各位大侠指点
如小弟的方向错误也请达人不吝纠正
服务器->客户端
HTTP/1.1 200 OK\r\n
.
.
Content-disposition: filename=www.yycaf.net[\304\332\326\372\326\256\315\365.10][yycaf\326\306\327\367]-caf.torrent\r\n
此封包的data就是我要的torrent档的内容
---------------------------------------太笨了吧?服务器不是给你内容了么?你自己都知道了,此封包的data就是我要的torrent档的内容
你可以把这个内容保存一个torrent文件啊
现在我要做一个跟迅雷差不多的下载器
一直卡在URL的问题
还有人可以为我解惑吗