急求一个 cf TOU事 的 要没插件 就这一种ionic 分享功能插件就行!…

绑定口袋巴士账号,从此一号登录以下游戏媒体:
下次自动登录
合作网站账户登录:
非常实用的兵种。可以替你无视了很多群体伤害防御建筑,而且,他们不会受到照明弹的影响,只会跟在你的部队后面。
肉盾兵种,极厚的血量,掩护性能非常优秀,可以掩护MM推到大本,掩护坦克抗过狙击塔加农攻击群,是个非常优秀的肉盾。
俗称野人,非常逆天的兵种,攻击力高,而且攻击时每一锤下去都能给自己回复血量,攻击速度快,能风卷残云般打垮对手。
攻击距离远输出高,经典"胖子MM"组合成为了最佳搭配,可以利用高输出平推对手的防御。缺点是走位难,没任何抵抗能力
战争机器!拥有高血量和高伤害、超远射程,但移动速度慢,且造价贵。加农炮和高爆地雷可以对坦克造成双倍伤害。
步兵作为基础兵种,只要有足够多的数量,可以碾压一切,他们并不惧怕加农炮和爆破加农炮还有狙击塔这些单体伤害的防御。
投弹兵体积庞大,臂力过人,能够制造很高的远程区域伤害,但准确度不高,一旦将防御部署在投弹兵的面前,那就是可能受到他们
的疯狂轰炸哦。
烈焰战车是个强有力的装甲武器,射程很侦查范围都比较短,但是他能装部署整船能量,通过一次性轰炸,毁掉附近一切。
资源岛阵容
京公网安备 86 京ICP证140355号 京网文【-109号UIDevice的uniqueIdentifier方法在ios7就不支持了, 为了获得设备相关的唯一标识符,&参考了这里:/Itayber/UIDevice-uniqueID
但是改了部分代码(下面会贴上代码). 另外,真机编译会出问题,解决记录如下:1. &把我修改了的UIDevice-uniqueID.h/m(见下面代码)加到工程里.2. &加IOKit.framework:把IOKit.framework(在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/IOKit.framework) 拖到 编译选项-Build Phases-Link Binary With Libraries里.(注意到这个framework里没有头文件...)3. &加IOKit的头文件:& & 在工程目录下的源文件目录里新建IOKit文件夹,把/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/System/Library/Frameworks/IOKit.framework/Headers里的文件都拷贝到该目录里.& & 同时添加好头文件搜索路径:& & 在编译选项-Build Settings-Header Search Paths添加$SRCROOT,并且可递归遍历:recursive.4. done.注意:这个方法虽然算出了设备相关的唯一标识符,但其结果和原uniqueIdentifier函数结果是不一样的,且如果上appStore很有可能会被苹果审核为不通过.--------------------------------------------贴代码:--------------------------------------------UIDevice-uniqueID.h
@brief 计算设备相关唯一标识符.
@note 来自/Itayber/UIDevice-uniqueID,
但是修改了部分算法.by xiaoU.
#import &UIKit/UIDevice.h&
@interface UIDevice (uniqueID)
- (NSString *) uniqueID;
- (NSString *) wifiMAC;
- (NSString *) bluetoothMAC;
- (NSString *) serialN
- (NSString *) deviceIMEI;
- (NSString *)deviceECID;
 UIDevice-uniqueID.m
#import "UIDevice-uniqueID.h"
#include &arpa/inet.h&
#include &net/if.h&
#include &net/if_dl.h&
#include &arpa/inet.h&
#include &ifaddrs.h&
#import &mach/mach_port.h&
#import &CommonCrypto/CommonDigest.h&
#import &IOKit/IOKitLib.h& // add by U.
NSArray *getValue(NSString *iosearch);
// thanks Erica Sadun!
// (spent time on this without realizing you had already wrote what I was looking for!)
NSArray *getValue(NSString *iosearch)
mach_port_t
propID = (CFTypeID) NULL;
unsigned int
kern_return_t kr = IOMasterPort(MACH_PORT_NULL, &masterPort);
if (kr != noErr)
io_registry_entry_t entry = IORegistryGetRootEntry(masterPort);
if (entry == MACH_PORT_NULL)
CFTypeRef prop = IORegistryEntrySearchCFProperty(entry, kIODeviceTreePlane, (CFStringRef) iosearch, nil, kIORegistryIterateRecursively);
if (!prop)
propID = CFGetTypeID(prop);
if (!(propID == CFDataGetTypeID()))
mach_port_deallocate(mach_task_self(), masterPort);
CFDataRef propData = (CFDataRef)
if (!propData)
bufSize = CFDataGetLength(propData);
if (!bufSize)
NSString *p1 = [[[NSString alloc] initWithBytes:CFDataGetBytePtr(propData) length:bufSize encoding:1] autorelease];
mach_port_deallocate(mach_task_self(), masterPort);
return [p1 componentsSeparatedByString:@"\0"];
@implementation UIDevice (uniqueID)
// UDID = SHA1(SerialNumber + IMEI + WiFiAddress + BluetoothAddress)
// http://iphonedevwiki.net/index.php/Lockdownd
/** add by U: 这网址里说了, iphone4之后,公示应该是:SHA1(SerialNumber + ECID + WiFiAddress + BluetoothAddress).
而实际真机测试发现- deviceIMEI函数获取不到IMEI.
所以修改了这函数. */
- (NSString *) uniqueID
// Returns a random hash if run in the simulator
#if TARGET_IPHONE_SIMULATOR
return [[[[[NSProcessInfo processInfo] globallyUniqueString] stringByReplacingOccurrencesOfString:@"-" withString:@""] substringToIndex:40] lowercaseString];
NSString *concat = [NSString stringWithFormat:@"%@%@%@%@",
[self serialNumber],
[self deviceECID],//[self deviceIMEI],
[self wifiMAC],
[self bluetoothMAC]];
const char *cconcat = [concat UTF8String];
unsigned char result[20];
CC_SHA1(cconcat,strlen(cconcat),result);
NSMutableString *hash = [NSMutableString string];
for (i=0; i & 20; i++)
[hash appendFormat:@"%02x",result[i]];
return [hash lowercaseString];
- (NSString *) wifiMAC
struct ifaddrs *
const struct ifaddrs *
if (getifaddrs(&interfaces)==0)
while (tmpaddr != NULL)
if (strcmp(tmpaddr-&ifa_name,"en0")==0)
struct sockaddr_dl *dl_addr = ((struct sockaddr_dl *)tmpaddr-&ifa_addr);
uint8_t *base = (uint8_t *)&dl_addr-&sdl_data[dl_addr-&sdl_nlen];
NSMutableString *s = [NSMutableString string];
for (i=0; i & dl_addr-&sdl_ i++)
[s appendFormat:(i!=0)?@":%02x":@"%02x",base[i]];
tmpaddr = tmpaddr-&ifa_
freeifaddrs(interfaces);
return @"00:00:00:00:00:00";
// I hope someone will find a better way to do this
- (NSString *) bluetoothMAC
mach_port_
IOMasterPort(MACH_PORT_NULL,&port);
CFMutableDictionaryRef bt_dict = IOServiceNameMatching("bluetooth");
mach_port_t btservice = IOServiceGetMatchingService(port, bt_dict);
CFDataRef bt_data = (CFDataRef)IORegistryEntrySearchCFProperty(btservice,"IODevicTree",(CFStringRef)@"local-mac-address", kCFAllocatorDefault, 1);
NSString *string = [((NSData *)bt_data) description];
string = [string stringByReplacingOccurrencesOfString:@"&" withString:@""];
string = [string stringByReplacingOccurrencesOfString:@"&" withString:@""];
string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
NSMutableString *btAddr = [NSMutableString string];
while (x&12)
[btAddr appendFormat:((x!=12&&x%2==0)?@"%C:":@"%C"),[string characterAtIndex:(x-1)]];
return btA
- (NSString *) serialNumber
return [getValue(@"serial-number") objectAtIndex:0];
- (NSString *) deviceIMEI
return [getValue(@"device-imei") objectAtIndex:0];
/// add by U:
- (NSString *)deviceECID
NSString * res =
if (CFMutableDictionaryRef dict = IOServiceMatching("IOPlatformExpertDevice")) {
if (io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, dict)) {
if (CFTypeRef ecid = IORegistryEntrySearchCFProperty(service, kIODeviceTreePlane, CFSTR("unique-chip-id"), kCFAllocatorDefault, kIORegistryIterateRecursively)) {
NSData *data((NSData *) ecid);
size_t length([data length]);
uint8_t bytes[length];
[data getBytes:bytes];
char string[length * 2 + 1];
for (size_t i(0); i != ++i)
sprintf(string + i * 2, "%.2X", bytes[length - i - 1]);
printf("%s", string);
res = [[[NSString alloc] initWithCString:string encoding:NSASCIIStringEncoding] autorelease];
CFRelease(ecid);
IOObjectRelease(service);
阅读(...) 评论()09月30日 20:46
09月30日 20:14
09月30日 18:16
09月30日 18:02
09月30日 17:11
09月30日 16:13
09月30日 16:04
09月30日 14:45
09月29日 22:44
09月29日 20:13
09月29日 17:57
09月29日 17:18
QQ头像发布规则:
1、不要发布不清晰、带广告网址的QQ头像。
2、每次发布头像数量不要少于6张,不然无法通过审核。
3、不要发布网友已经发布过、网上已经有过的高度重复的QQ头像。
4、标题不要出现求赞、求顶、求好评之类的字样,有意义的标题会更受欢迎。
5、发布QQ头像后,审核时间一般不会超过2个小时。热门连连看小游戏排行
《》游戏数:1204个
专题介绍:把两张一样的牌,用三根以下的线连起来,这就是连连看。简单,却不缺乏挑战,道具、连击、多样的地图,让你永远玩不腻。4399连连看专题收录国内外连连看类小游戏,满足你的新鲜感!想在安卓手机上继续玩耍连连看游戏吗?点击右侧红字马上访问。
第1页/共2页
玩更多的连连看游戏翻页去找哦→ 第1页/共2页磁力链接_百度百科
磁力链接,简单的说(Magnet URI scheme):类似下面这样以“magnet:?xt=urn:btih:”开头的,就是一条磁力链接;确切的说:“磁力链接”的主要作用是识别【能够通过“(即:P2P)”下载的文件】。这种链接是通过不同文件内容的Hash结果生成一个纯文本的“”,来识别文件的。而不是基于文件的位置或者名称。[1]
磁力链接特点
众所周知,速度不够稳定,当中断种时则无法完整下载。但是,这还不是最严重的。
从2009年开始,BT下载遭遇到了“更大的困难”----很多的BT服务器被关,不仅很多种子文件无法找到,BT Tracker服务器也断开解析工作,这就使得BT下载成为很大的难题。
磁力链接很好地解决了这个问题。磁力链接的问世与大行其道,标志着BT 1.0时代已经过去,BT 2.0 时代已经到来。
深刻理解磁力链接
简单地说,磁力链接是一种特殊链接,但是它与传统基于文件的位置或名称的普通链接(如http://xxx)不一样,它只是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,并用它来识别文件。
它类似于生活消费品包装上常见的条码,不同的是这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了磁力链接不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。
因此任何人都可以生成一个Magnet 链接并确保通过该链接下载的文件准确无误。
更简单地说:类似【magnet:?xt=urn:btih:88594AAACBDE40EF3EEC0AA396C08E&dn=bbb_sunflower_1080p_30fps_normal.mp4&tr=udp%3a%2f%%3a80%2fannounce&tr=udp%3a%2f%%3a80%2fannounce&ws=http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_1080p_30fps_normal.mp4】这样以“magnet:?”开头的字符串,就是一条磁力链接,其在网页上的图标通常如图1所示,像一块磁铁,很容易辨别。[1-2]
磁力链接角色
在传统的BT下载方式中让各个之间相互联系,有2种途径:
1、通过连接BT种子中记录的BT Tracker服务器,获取下载者列表
2、利用BT种子中记录的“”通过DHT网络进行搜索,获取下载者列表
(不过现实是,存活的BT Tracker服务器越来越少。而BT也需要服务器保存。)
我们假设“BT Tracker服务器连接不上了,BT种子文件服务器也被干掉了。。”
那么显而易见的是第1种途径完全走不通,第2种途径只能帮你“寻找”,却没办法知道你在寻找什么。
“磁力链接”的主要作用就是把“”告诉DHT网络,你需要寻找什么。
磁力链接下载
举例来说,开源的动画短片大雄兔的视频文件是bbb_sunflower_2160p_30fps_stereo_abl.mp4,按照以前的方式,我们需要 下载它的torrent文件,然后才能下载这部电影本身。但是,在新的模式下面,我们不需要下载torrent文件,我们只需要知道它的magnet URI,就可以了。
只要把这个地址告诉下载软件,软件就会开始自动下载。这和emule下载非常相似,只需要一个资源定位信息,其他都不需要。
bbb_sunflower_2160p_30fps_stereo_abl.mp4的magnet URI如下:
magnet:?xt=urn:btih:4D9FA761DB3B0C9C1F968EA6C47D0&xt=urn:ed2k:7655dbacffc9cb49cbec0e&dn=bbb_sunflower_2160p_30fps_stereo_abl.mp4&tr=udp%3a%2f%%3a80%2fannounce&tr=udp%3a%2f%%3a80%2fannounce&ws=http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_2160p_30fps_stereo_abl.mp4
***一下这个网址:
magnet :协议名。
xt :exact topic的缩写,包含文件哈希值的统一资源名称。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用ED2K,AICH,SHA1和MD5等。这个值是文件的标识符,是不可缺少的。
dn :display name的缩写,表示向用户显示的文件名。这一项是选填的。
tr :tracker的缩写,表示tracker服务器的地址。这一项也是选填的。
ws : webseed的缩写,表示网络种子。
简单说,只要知道magnet:?xt=urn:btih:4D9FA761DB3B0C9C1F968EA6C47D0&xt=urn:ed2k:7655dbacffc9cb49cbec0e&dn=bbb_sunflower_2160p_30fps_stereo_abl.mp4&tr=udp%3a%2f%%3a80%2fannounce&tr=udp%3a%2f%%3a80%2fannounce&ws=http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_2160p_30fps_stereo_abl.mp4这个地址,不用下载torrent文件,也不用再了解其他信息,就能开始BT下载这个文件了。[1]
磁力链接问题
前面我们说过,“磁力链接”是通过来索引需要下载的文件的,因此在某些环境下可能出现“获取磁力链接信息”时间较长,或者获取失败的问题。由于目前相关问题经验的积累很少,因此除了重试还没有明确的解决办法。[2]
磁力链接BT历史
20世纪60年代,美国国防部高级研究计划署(DARPA)提出要研制一种崭新的、能够适应现代战争的、生存性很强的网络,目的是对付来自前苏联的核进攻威胁。翻看一下历史就能知道,苏联当时把全球第一颗人造卫星送上了太空,美国感觉到了压力,于是他们随后也搞出了另一个足以改变未来世界的东西----ARPANET,当今互联网的雏形。
ARPANET的宗旨之一是去中心化,原因很简单,存在中央节点无异于存在致命节点,单点失效,将导致整个网络功能失效。
互联网上依靠中央节点才能正常工作的应用其实不在少数,比如我们再熟悉不过的BT。也许你会说:BT不是P2P下载吗?而P2P是没有中心节点的,我们所下载的文件实际上存放在每个网友的电脑中,像FTP这样的应用才是经典的中央节点应用----这话只说对了一半,BT是P2P应用没错,但如果说BT没有中心节点,不会出现“单点失效”,这种看法其实是错误的。
仔细想一想,BT真的不需要中心节点吗?如果是,那为什么国内BT站点关闭后会给下载BT资源带来不便,甚至出现BT客户端无法工作的情况?***只有一个,BT并非一个去中心化的应用。
那BT的“命门”在哪呢?也许你听说过BT Traker服务器。而这个BT Traker服务器也就是目前我朝有司大力打击BT下载站的重要和主要罪证之一,因为这个服务器的存在,且不管技术手段如何,从表面特征上看来,这些网站如同直接提供视频内容一样。正是因为这个服务器的存在,成了这些BT站点供认不讳的证据。滔天罪恶,证据确凿:“你们提供中心下载的服务器,上面全是未经许可的视频内容”。[3]
磁力链接BT发展
海盗湾关闭跟踪服务器的消息BT Tracker服务器关闭将会产生怎样的后果?(海盗湾,英国电信江湖排名第一,Mininova排名第二)
海盗湾(The Pirate Bay),自称“世界上最大的电信分享网站“,是一个专门存储,分类及搜索电信资源的网站,同时它也运行着世界上最大的BTTracker服务器。日,海盗湾称其规模已经达到了2500万独立Peers,注意不是种子,Peer可以认为是参与海盗湾“分享计划”的实际用户(电脑)数量,截至2009年12月,海盗湾注册用户已经达到400万,尽管下载资源是不需要注册的。但它的名声似乎不是很好,洛杉矶时报(Los AngelesTimes)称其是世界上最大的非法下载辅助者(帮凶?)之一。海盗湾正式成立于2004年10月,除了拥有辉煌的“业绩”,同时也麻烦缠身。根据记录,控告海盗湾的案件有34起之多,其中涉及音乐行业的21起、电影行业9起、游戏行业4起。2009年成为斗争最激烈的一年,日,瑞典斯德哥尔摩的法院以侵犯版权罪判处海盗湾4名创始人各1年的监禁,并处以约3000万瑞典克朗的罚金。随后发生的事情更让人感觉BT的“大限”终于还是到了。11月17日,海盗湾决定永久关闭他们的Tracker服务器,12月初全球第二大BT服务网站Mininova删除了网站上大部分非法文件的BT Tracker。Mininova表示,为了避免支付罚款,除了删除所有侵权文件的BT Tracker之外,他们别无选择。有人比喻,一个时代结束了,MPAA()和RIAA(美国唱片行业协会)成了这场斗争的赢家。表面上看确实如此,在这场斗争中MPAA和RIAA最想“除掉”的就是BT Tracker服务器,而且他们做到了。
也许一个时代结束了,但BT时代真的结束了吗?***是否定的。MPAA和RIAA“除掉”了BT Tracker服务器,卡死了当前BT工作方式的“命门”,但随着新技术的引入,BT Tracker对于BT分享已经变得不再重要,甚至有些多余,事物的发展结果有时就像是开了一个玩笑,而这次的玩笑就开在了MPAA和RIAA身上。为什么会这样?想搞明白这些,我们必须先梳理一下BT分享的实现方式。
用户是怎样通过BT下载文件的?基本过程应该是这样:一、找到Torrent文件,二、使用BT下载客户端软件打开这个文件。三、对于用户来讲,只要花时间去等就可以了。而对于客户端软件来讲,它会根据Torrent文件中的网址自动连接Tracker服务器,从它那里接收到其他正在下载该文件的人的网址名单。下一步,软件就一一与名单上的网址取得联系,从它们那里获取文件的片段,直到整个下载完成。从整个过程不难看出,BT Tracker服务器是一个中央节点,任何客户端都可以在其上找到“同伴”----只要其他人也在下载或分享同一个文件。所以MPAA和RIAA盯上了BT Tracker,因为消灭所有Torrent文件几乎是不可能的,但通过一些“努力”,消灭BT Tracker服务器则完全有可能实现。官司赢了,一个时代结束了,我们不妨称其为是BT1.0时代,BT1.0时代致命的缺点是因为其存在中央节点,也就是BTTracker服务器。然而,官司输了,并不代表整个BT时代的终结,一个新的时代已经悄然开始,我们可以称其为BT2.0时代。
在BT2.0时代,Magnet(意译:磁铁、吸铁石)成为未来BT的发展方向,Magnet真的可以挽救BT吗?经笔者亲身试用,在支持Magnet URI之后,海盗湾似乎获得了新生,下载速度并非越来越慢,相反,速度表现让人满意。最关键的是,Magnet不需要Tracker服务器,也不需要Torrent文件,仅需要一串字符就可以进行文件下载。海盗湾LOGO与未来BT的“图腾”,海盗湾上的BT资源已经加入了Magnet下载方式Worlds most resilient tracking----节选自海盗湾博客博文的题目是“世界上最稳定的tracking”,文中提到:“随着DHT+ PEX技术的不断成熟,发现对端(Peer)并协调通信已经变得容易实现,而Tracker服务器变得不再重要,甚至显得有些多余,所以我们将关闭服务器。”文中还说服务器现在被安置在了一家博物馆中。看来,关闭Tracker服务器是计划之内的事情。一切尽在掌握?Tracker服务器和“BT种子”即将双双退役,取而代之的是DHT+ PEX网络和Magnet Link,DHT网络是分布式存在的,所以不存在“被拔线”的问题,而Magnet Link仅是一串字符,所以也不再需要Torrent文件。
这里出现了三个关键词:DHT、PEX和Magnet Link,这三点是未来BT的核心,下面我们就来说一说它们都可以实现怎样的功能。
DHT:2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们将其称为Kademlia方法。2005年,BT软件开始引入这种技术,在BT中被称为DHT协议(Distributed HashTable,分布式哈希表)。DHT是一种分布式存储方法。DHT的作用是找到那些与本机正在下载(上传)相同文件的对端主机(Peer),当然,实现这一过程并不依赖Tracker服务器。在DHT网络中的每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。这种信息获取方式保证了整个网络没有单个的中心,即使一个节点下线,依然可以通过其他节点来获取文件,因此也就不需要Tracker服务器来告诉你,其他节点在什么地方。[1]
PEX:是Peer Exchange的简写,我们可以将其理解为“节点信息交换”。虽然DHT解决了去中心化的问题,但要在没有“中心协调员”(Tracker)的情况下实现高效寻址,就要借助PEX。PEX所提供的功能有点类似于以前的Tracker服务器,但工作方式却非常不同,我们可以打个比方来说明。小赵在A班,她不认识B班的小何,也不认识C班的小温,但小赵认识同班的小王,而小王认识B班的小何,也可能还认识C班的小温,或者小王仅认识B班的小何,但小何认识C班的小温,而小温又认识同班的所有同学,结果就是小赵可以“无限”地延伸自己的关系网,不管怎样,总有一条沟通途径可以将这些同学联系在一起,待小赵“认识”了小温后,他们就可以直接沟通了,在P2P世界里,就是进行上传与下载。
Magnet links:有网友将其称为磁链。DHT+ PEX解决了BT“寻址”的问题,但是如何告诉BT客户端找(寻)什么又是另外一个问题。在Torrent文件中包含的内容就是用户真正要下载的文件的特征信息,或称为“电子指纹”,BT客户端知道了要找什么,也知道如何去找,于是P2P方式的下载、上传就实现了。以前BT客户端通过Torrent文件得知“要找什么”,现在,文件的“电子指纹”不再存放于Torrent中,而被放在了Magnetlinks中。 magnet:?xt=urn:btih:CBCDEFGHIJKLMNOPQRSTUVWXYZ上面是笔者打算下载的一个文件,Microsoft iSCSI Initiator,按照以前的方式,我们需要下载它的Torrent文件,然后才能下载这个文件本身。但是,在新的模式下,我们不需要下载Torrent文件,只需知道它的Magnet URI,一个资源定位信息,其他都不需要。只要把这个地址告诉下载软件,软件就会开始自动下载。我们来***一下这个地址:magnet:协议名。xt:exact topic的缩写,表示资源定位点。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的,是不可缺少的。dn:display name的缩写,表示向用户显示的文件名。这是一个可选项。tr:tracker的缩写,表示tracker服务器的地址。这是一个可选项,本例中并未出现。精简一下上例,仅需要magnet:?xt=urn:btih:DBCDEFGHIJKLMNOPQRSTUVWXYZ就够用了,如果附加dn(displayname),在使用上会更加方便一些。MagnetLink的好处就不用笔者多说了,至少包括两点:网络的可靠性得到了极大的增强;不存在“被拔线”的风险。由于不存在所谓的中央节点,审查将变得更加困难,“单点失效”的问题也就不存在了。此外,MagnetURI只是一个字符串,非常容易传播,根本无法禁止。因此,Magnet URI取代Tracker模式将是大势所趋,迟早会成为主流BT下载方式。
细心的网友可能看出了DHT+PEX+Magnet Link模式中的一个问题----BT客户端的“第一步是如何迈出的”,套用在介绍PEX时使用的例子,那就是小赵是怎么“加入”A班的呢?这确实是个问题。解决这个问题依然需要一台服务器(boots trap node),不过这台服务器所起的作用与Tracker不同,它仅负责接纳小赵进入A班,当小赵与A班中的同学“搭上了话”,之后这台服务器就没有什么用处了。boots trap node可以是不同BT客户端厂商独立运营的,也可以是几家联合共用,总之,它是分散的,只要在客户端软件中内置一张表单,那客户端就将有非常多的入口可供选择。 说了这么多,到底Magnet这块“吸铁石”表现如何?是骡子是马总要拉出来溜溜。于是笔者找来了目前已经支持Magnet的BT客户端。μTorrent 是众多BT客户端之一,在***过程中我们可以看到,它已经支持Magnet URIs。μTorrent 下载BT资源,速度144.4KB/s 我们下载的资源来自海盗湾,所以对端资源都来自国外,如果有一天Magnet被彻底“本土化”,且用户量达到一定规模,其表现应该可以完全媲美传统的BT下载方式。看到这里相信您已经明白了,海盗湾为什么会乖乖地关掉他们的BT Tracker服务器,看来这次MPAA和RIAA与海盗湾斗法虽然胜了第一回合,但接下来要如何对付DHT+PEX+Magnet Link模式,这应该是个比较让人头疼的问题。 在《猫鼠游戏》这部电影中,***与“盗版者”之间玩的是游击战。海盗湾的BTTracker服务器也曾有过类似的经历----在几个国家间迁来迁去,在不同的IDC中东躲西藏,但版权组织始终对其“不离不弃”,并最终得手。事后我们在同一时间,很巧合地听到了三种声音,版权组织说,我们赢了;海盗湾说,我们不跟你玩了;广大围观群众说,BT还好好的啊,这些年那两个家伙到底在搞什么?放弃Tracker模式,改用Magnet,对于网友来讲几乎没有任何成本,仅需将当前BT软件升级即可,甚至连操作习惯都不会发生任何变化,因为你无需换用其它BT软件,在国内,、比特彗星都已经开始支持Magnet。所以,您可能已经进入了BT2.0时代,只是您自己还不知道。“我们并不提供实体下载资源,所有资源都是网友自发上传的……”相信您经常会听到类似的辩解,这句话看似有理,从技术角度讲也没有任何漏洞,但多少感觉属于狡辩。事物在不停发展,这就造成了监管上的缺失,待监管手段日趋完善时,事物可能又一次向前发展,导致监管手段再次落伍。新的BT分享方式将传统Tracker服务器所提供的功能进行了“***”,所有BT用户成为Tracker服务器的一份子,核心消失了,在这种情况下,版权组织又该将反盗版的大棒挥向谁呢?[3]
.Big Buck Bunny.[引用日期]
.太平洋电脑网[引用日期]
.太平洋电脑网[引用日期]
企业信用信息

参考资料

 

随机推荐