国内最好的网盘是哪一个?我带着这样的问题在google和百度溜达了2个小时,得出了结论,它就是115网盘,赶快到它的官方网站去注册,享受下电影,软件的乐趣,有很多好的资源都能在115网盘上找到。
存档在 ‘网络’ 分类
国内最好的115网盘官方地址
2011年7月16日WordPress 插件机制-解决插件问题
2011年7月16日如何解决wordpress插件问题
一直对软件的组件、插件架构非常感兴趣,我认为现在开发任何应用程序,一定要有一个架构良好的插件机制,这样可以吸引其他人来开发插件,极大的扩充系统的功能。Eclipse就是一个非常棒的例子,几乎你想什么功能,都可以从社区中找到相应的第三方插件。Firefox也同样如此,它的插件机制非常灵活(尤其是相对IE而言),因此Firefox社区中可以找到各种各样的插件。
1)WordPress读取所有可用的插件
在文件“/wp-admin/includes/plugin.php”中,函数 get_plugins() 用来从文件系统得到所有的插件。原理很简单,就是读取“wp-content/plugins”目录下的所有PHP文件。这个函数允许一级的子文件夹,也就是说在’wp-content/plugins’下面的PHP文件,以及所以在此目录下的一级子文件夹内部的PHP文件被列作插件的候选,用下面的函数去进一步提取插件信息。这样的好处是方便用户利用文件夹来对插件进行管理和组织。
而函数 get_plugin_data() 则用来得到插件的描述(Plugin Descriptor),主要包括插件的版本、名称、作者,等信息,而这些其实是以注释的方式存在的。用WordPress中自带的Hello插件来举例:
/*
Plugin Name: Hello Dolly
Plugin URI: http://wordpress.org/#
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
Author: Matt Mullenweg
Version: 1.5
Author URI: http://ma.tt/
*/
?>
这样,在get_plugin_data函数中,就可以来得到插件的详细信息。
function get_plugin_data( $plugin_file ) {
$plugin_data = implode( ”, file( $plugin_file ));
preg_match( ‘|Plugin Name:(.*)$|mi‘, $plugin_data, $plugin_name );
preg_match( ‘|Plugin URI:(.*)$|mi‘, $plugin_data, $plugin_uri );
preg_match( ‘|Description:(.*)$|mi‘, $plugin_data, $description );
preg_match( ‘|Author:(.*)$|mi‘, $plugin_data, $author_name );
preg_match( ‘|Author URI:(.*)$|mi‘, $plugin_data, $author_uri );
if ( preg_match( “|Version:(.*)|i“, $plugin_data, $version ))
$version = trim( $version[1] );
else
$version = ”;
$description = wptexturize( trim( $description[1] ));
$name = $plugin_name[1];
$name = trim( $name );
$plugin = $name;
if (” != trim($plugin_uri[1]) && ” != $name ) {
$plugin = ‘<a href=”‘ . trim( $plugin_uri[1] ) . ‘” title=”‘.__( ‘Visit plugin homepage‘).‘“>‘.$plugin.‘</a>‘;
}
if (” == $author_uri[1] ) {
$author = trim( $author_name[1] );
} else {
$author = ‘<a href=”‘ . trim( $author_uri[1] ) . ‘” title=”‘.__( ‘Visit author homepage‘ ).‘“>‘ . trim($author_name[1] ) . ‘</a>‘;
}
return array(‘Name‘ => $name, ‘Title‘ => $plugin, ‘Description‘ => $description, ‘Author‘ =>$author, ‘Version‘ => $version);
}
?>
2)启用 & 禁用插件
启用(禁用)插件的操作都在Plugins.php中,比如我要Deactive “Hello”这个插件,最后的URL其实是这个样子:
其中,“Action”表示动作,值为“active”或者“deactivate”,而“Plugin”表示动作的对象插件,此处为“hello.php”。得到动作指令后,首先从数据库中取出当前已经激活的插件。
然后根据动作,重新生成已激活插件数组,存入数据库,并重新加载此页。加载的时候就需要考虑这些已经激活的插件是怎么工作的了。
BTW:附上数据库的Options表中0插件和只有1个插件的值:
没有插件:
只有Hello插件:
3)如何加载启用的插件到系统中
WordPress中的每页都会包含“wp-config.php”文件,而“wp-config.php”中也会自动加载“wp-settings.php”文件。在“wp-settings.php”文件中,可以找到以下与插件相关的代码片断:
if ( get_option(‘active_plugins‘) ) {
$current_plugins = get_option(‘active_plugins‘);
if ( is_array($current_plugins) ) {
foreach ($current_plugins as $plugin) {
if ( ” != $plugin && 0 == validate_file($plugin) && file_exists(WP_PLUGIN_DIR . ‘/‘ .$plugin) )
include_once(WP_PLUGIN_DIR . ‘/‘ . $plugin);
}
}
}
?>
可见,这段代码会取出系统中所有启用的插件,并包含进来。所以在每页加载的时候,都会首先包含这些插件代码。那么,这些插件自己在加载的时候都做了什么呢?
4)插件的加载
插件的加载其实最重要的一个部分就是插件的事件注册机制,WordPress插件中的事件注册其实和Eclipse中的扩展点(Extension-Point)机制非常相像,而这种类似“插销”、“插销座”的软件插拔方式也成为了最近软件组件架构方面应用最多的实践。
事件注册过程中比较重要的几个函数分别是:do_action、add_action、add_filter。WordPress中默认定义了很多扩展点(也可以叫做“钩子”),或者说注册了很多系统事件(WP中的正规叫法应该是“Action Tag”),比如“admin_head”表示Admin页面的Head输出事件,“publish_post”表示发布一篇帖子的事件等等。而插件要做的就是扩展这些扩展点,或者说挂接这些钩子,从而实现系统的扩展功能。add_action就是通常插件扩展某个扩展点用到的函数,而do_action 是扩展点本身开始执行的函数。
刚才说过WordPress中的每一页执行前都会Include所有Active的插件代码,而这些代码通常都会用“add_action”来将自己的函数注册到系统的扩展点中。这样,在扩展点执行的时候,就会找到系统中所有已经挂接到这个扩展点上的插件的函数来执行之,从而扩充系统的功能。
WordPress中的很多功能也都是通过这种插件结构来实现的,默认注册了很多系统事件,都在’default-filter.php’中。比如:
这个是用来在发布每篇帖子的时候发送XML-RPC Ping的。再比如:
用来将正文(content)中的笑脸符号转换为图像。
还是举“Hello”插件来说。Hello插件会随机的在Admin Page的右上角显示一段话,它的工作原理是这样的:
在每一个Admin page的前面都有
而在“admin-head.php”中将会执行扩展点“admin-head”的所有扩展:
这样,就会执行所有挂接到admin_head的函数,Admin Page 的 Footer 部分也是类似。
5)如果插件中涉及UI
其实是一样的。以WordPress FeedBurner Plugin中添加菜单为例。
如果想添加一个菜单,就需要注册“admin_menu”这个Action Tag(系统事件)即可:
插件中的这个函数为:
function ol_add_feedburner_options_page() {
if (function_exists(‘add_options_page‘)) {
add_options_page(‘FeedBurner‘, ‘FeedBurner‘, 8, basename(__FILE__),‘ol_feedburner_options_subpanel‘);
}
}
?>
“add_options_page”这个函数就会在系统的“Options”菜单中添加“FeedBurner”这样一个子菜单。
6)其它
还有一些简单的插件就是只提供一些API函数。比如Most_Commented Plugin,它提供一个API “mdv_most_commented”:通过数据库查询得到评论最多的文章,并加以显示。因为这个插件已经被Include过,所以可以用这个API来进行显示。
支持paypal消费和paypal支付的网站介绍
2011年7月10日paypal消费的网站很多,大多数都是有信用的国际公司,以英文站居多,当然个人的网站也有很多支持消费的,有的个人人品远高于公司人品,paypal的消费者信用保护机制比较健全,有些时候对商家来说,对消费者的保护似乎有点过头,我们这儿不是探讨paypal的保护机制,而是看看我们能用paypal在网络上做些什么事情。下面的文章多数都与paypal消费有关,其中涉及外汇投资,域名购买,主机等。
- easy-forex官方网站
- easy-forex专题
- 国际原油
- 黄金交易
- 外汇交易
- 差价合约
- paypal
- paypal中文详解
- ixwebhosting官方网站
- Godaddy官方网站
- VPS主机商burstnet官方网站
- 如何投资国际原油
- 外汇开户要多少钱
- 在线原油交易
- 用vps搭建vpn
- The Best Spinner
- ixwebhosting介绍
- BurstNet VPS
- www.ixwebhosting.com
- 购买域名
- 国外投资网站
- WP Robot Control Center
- Batting Glove
- web ceo
- Burst官方网站
- hotfile网盘
- 最好的虚拟主机-bluehost
- Godaddy官方网站
- paypal注册教程
- paypal的用途
- 如何购买Burst VPS主机
- 最稳定的美国虚拟主机
- 美国VPS
- 美国虚拟主机
- easy-forex注册说明
- 性价比高的xen框架vps主机
我们将陆续添加支持paypal支付和paypal消费的网站。
ifttt教程
2011年7月7日刚试用了ifttt,太好玩了,一个字“牛”,写个简单的教程,大家去体验,网站做到这份上,不得不佩服国外的创新能力。
首先要得到邀请才行,有了邀请码才能去注册,ifttt官方网站:ifttt
ifttt是 If this then that 的简写,意思就是如果this(就是指一件事的发生),然后引起that(另一件事的发生),对于编程的比较好理解,还是举例说明就清楚了:
比如我要收到gmail,就发短信到我的手机上,我就开始create task(创建任务):
点击this,就可以看到下面的选项:
挑选你要用到的项目,比如现在我要用gmail,就添加gmail,然后输入gmail的帐号,同意你的gmail与ifttt帐号关联,再选择New email from,意思就是如果那个人给你发了新邮件就触发下一件事,你要填入那个人的邮箱,这样当这个人给你发邮件时,网站将触发that。下面是that:
点击that,我们将进入要触发的事件,我们看看可以选择那些:

我这里选择的是sms,就是短信,首先要输入你的电话号码,注意格式是00+国家代码+电话号码,比如008613512345678.然后ifttt会发一个pin码到你的手机,把手机上的pin码填入,就认证了你的手机。然后下一步,就会看到:Send me a text message ,点击进入下面的页面:
点击create action就ok,这个教程很简单,你们可以尽情发挥自己的想象力。
最好的中文网赚网站-猪八戒
2011年7月4日这个标题很特别,这里的猪八戒不是孙悟空的师弟,它是我遇到的最好的任务网站,也就是说非常适合做网赚,她的优势在于,会员多,信用好,做网赚做的就是信用,对于不会做英文网赚的朋友,可以尝试中文网赚,猪八戒是个好地方。
猪八戒官方网站:zhubajie.com
CSS网站设计三栏完美解决方案-In Search of the Holy Grail
2011年6月18日CSS设计网站有完美的解决方案吗?有,当你看了这篇In Search of the Holy Grail文章,你就会被它简单而设计框架所折服。之.
In Search of the Holy Grail
很抱歉我没有将这篇文章命名.我不是想夸大他的重要性或是轻视其他的Holy Grails.但是确实是这么称呼,我们都明白它的含义.
三栏,一个是固定宽度的导航栏,另一个是GOOGLE广告,或是Filckr图片展示,就像Fancy的松露巧克力一样,和一个重要的柔滑的夹心。在这个博客流行的黄金年代它是相当适用的,加之相当大的实现难度,理所应当的获取了”圣杯”的名称.
有很多文章是讨论关于”圣杯”的,也有很多很好的模板可以使用。但是,所有的方案都是以牺牲以下特性为代价的:合理的内容顺序,宽度自适应,合理的标签。这三者往往是这难以达到合理的布局中要折中的元素
在最近的一个项目中我终于找到了传说中的圣杯。我在不会改变您的代码和灵活性的前提下尽可能的描述他。他会是:
- 一个自适应适应的中心和固定宽度的侧边栏
- 允许中间的内容先于其他出现在代码中
- 允许任何一栏都是最高的高度
- 只需要额外的一个DIV标签
- 非常的简单的CSS代码和很少很少的HACK 补丁
站在巨人的肩膀上
这个技术的灵感来自于Alex Robinson’s的One True Layout。他曾经在他的文章里阐述过”圣杯”的若干问题,但是他的解决方法需要两个包装并且要求每一栏都需要一个父级DIV,否则很难写内在结构.
另一方面则是由Eric Meyer’s的写法想到的,他利用了多种类型的单元混合定位。它的例子中也是用了固定的侧边栏和自适应的中心层,可是不幸的是,他依赖于近似的百分比,不是固定的值,而且填充了一部分随屏幕分辨率不同而自适应宽度的层。
言归正传,看看代码
代码是很直观而且很优雅的。
(为了直观起见,我们使用了非语义化的”中心”、”左”和”右”来阐述我们的代码,但是我们建议您在您的代码中使用语义化的标签 -Ed.)
- <div id=“header“></div>
- <div id=“container“>
- <div id=“center“ class=“column“></div>
- <div id=“left“ class=“column“></div>
- <div id=“right“ class=“column“></div>
- </div>
- <div id=“footer“></div>
一个额外的DIV包含着我们的三个层,这样的结构符合我集中内容上一体的标记为一体的习惯(obsessive compulsive markup habits. 翻译的不准确)
样式很也简单,左边侧栏是200PX,右边是150,为了简便标示用LC,RC,CC分别代表左边,右边和中间,样式如下:
- body {
- min-width: 550px; /* 2x LC width + RC width */
- }
- #container {
- padding-left: 200px; /* LC width */
- padding-right: 150px; /* RC width */
- }
- #container .column {
- position: relative;
- float: left;
- }
- #center {
- width: 100%;
- }
- #left {
- width: 200px; /* LC width */
- right: 200px; /* LC width */
- margin-left: -100%;
- }
- #right {
- width: 150px; /* RC width */
- margin-right: -150px; /* RC width */
- }
- #footer {
- clear: both;
- }
- /*** IE6 Fix ***/
- * html #left {
- left: 150px; /* RC width */
- }
重新度量你想要的模型的价值,你会发现其实很简单.这布局能在Opera, Firefox, and IE6(需要在最后一句HACK).IE5.5则需要HACK CSS盒模型。刚好也给读者一个练习的机会(Orz).
再看一遍这段优化代码(例子)
原理
其实诀窍很简单,让左边栏与右边padding,右边栏与左边padding,中间刚好剩下自适应的内容层.
让我们一步一步来演示这个过程
第一步:创建父级容器
包括header, footer, and container.
- <div id=“header“></div>
- <div id=“container“></div>
- <div id=“footer“></div>
我们让container(包容的容器)padding-left,padding-right,padding的值分别是左边栏和右边栏的值.
- #container {
- padding-left: 200px; /* LC width */
- padding-right: 150px; /* RC width */
- }
第二步:添加栏
我们现在已经有了父级容器,现在来插入里面的三栏
- <div id=“header“></div>
- <div id=“container“>
- <div id=“center“ class=“column“></div>
- <div id=“left“ class=“column“></div>
- <div id=“right“ class=“column“></div>
- </div>
- <div id=“footer“></div>
现在我们要添加宽度和浮动属性以使他们在一行,并且在footer清除浮动
- #container .column {
- float: left;
- }
- #center {
- width: 100%;
- }
- #left {
- width: 200px; /* LC width */
- }
- #right {
- width: 150px; /* RC width */
- }
- #footer {
- clear: both;
- }
你会留意到中间的层已经和外面的层一样宽了(除去padding值的情况下),一会我们就可以看见所有的层都在一起并且也是100%宽。现在,层的顺序就是我们想要的顺序了,但是因为中间的层占据了100%的宽度,所以左边和右边的层就掉了下来。

第三步:把左边栏放在左边
现在我们要干的是怎么样让这三栏在一行,中间的容器已经完全符合我们的要求了,我们只需要关注剩下的两个,先从左边的开始。
需要两步让左边栏在左边.第一步:让他以100%的负margin(margin-left: -100%;)穿过中间的层,记住一定要用100%,因为中间的层的宽度是100%.
- #left {
- width: 200px; /* LC width */
- margin-left: -100%;
- }
现在左边栏和中间栏重合,左边重合,右边栏浮动过来(虽然还是掉下去了),现在的结果变成了下面的样子:

第二步:现在要把左边栏拉到正确的位置,我们使用相对定位来抵消左边栏的宽度
- #container .columns {
- float: left;
- position: relative;
- }
- #left {
- width: 200px; /* LC width */
- margin-left: -100%;
- right: 200px; /* LC width */
- }
因为设置了right: 200px;所以左边栏被中心层的右边推远了200px,刚好到了左边。(The right property pushes it 200px away from the right edge; that is, to the left.)现在左边栏刚好完美的到了他应该到的位置

第四步:把右边栏放到右边
剩下的事就是把右边栏放在右边,需要把他拉出容器放在容器的padding上,我们依然利用负边距。
- #right {
- width: 150px; /* RC width */
- margin-right: -150px; /* RC width */
- }
第五步:补充设计
如果浏览器重新调整大小,中间的容器小于左边栏的时候,整个布局都会被破坏掉,所以要设置一个min-width来保持我们的布局不被片破坏,虽然在IE6上这个属性是不起作用的,但是没关系。
- body {
- min-width: 550px; /* 2x LC width + RC width */
- }
没有任何一个布局是不要对IE增加一些额外的工作就能完成的。(-_-!) 在IE6中负边距会使左边栏离的太远(在全宽浏览下),我们要用右边栏的宽大把他向右拉回来。并且用* html来屏蔽其他浏览器执行他.
- * html #left {
- left: 150px; /* RC width */
- }
至于为什么要用右边栏的宽度,要牵涉到一些算法。当然我不会用去解释这些,我们只要知道这样是起作用的,我们甚至可以认为这个是IE的众多”魔法”之一。
Padding, please
我不是设计师,但是上面的布局实在是触犯了我的审美观。没有边距的栏目是很分辨和阅读的,我们需要空隙!
使用One True Layout这样百分比布局的的弊端之一就是会造成中间层的padding困难,百分比的padding在某些分辨率下会变的很难看。可以用固定宽度的padding,但是需要给每一栏内部嵌套一个div。
用这个布局padding不是问题,他可以直接给左、右边栏添加padding,只需响应的调整即可。例如我们要给上面的例子添加10px的padding,并且保持他(width+padding)还是200px,只需要小小的改动
- #left {
- width: 180px; /* LC fullwidth - padding */
- padding: 0 10px;
- right: 200px; /* LC fullwidth */
- margin-left: -100%;
- }
要给中心层加padding需要一个技巧,但是不需要额外的结构,只需额外的一小段css。加的100%的宽度导致中心层和外部的的padding以外(non-padded width)的宽度一样宽。为了达到我们想要的效果,我们需要增加右边的margin,使其等于padding值的总和,这样就保证了他会是我们想要的大小。
我们改变了中间层的改变成现在这样后,左边栏需要移动更多的距离才能在正确的位置上,这也是技巧所在。我们需要给右边框的抵消值(上面的right值)增加上中间层的padding值。
为了更具体的说明,我继续以上面的例子为例,现在给每一个边框增加10px的padding值(合计20px),中间层增加20px的padding值(合计40px),新的样式如下:
- body {
- min-width: 630px; /* 2x (LC fullwidth +
- CC padding) + RC fullwidth */
- }
- #container {
- padding-left: 200px; /* LC fullwidth */
- padding-right: 190px; /* RC fullwidth + CC padding */
- }
- #container .column {
- position: relative;
- float: left;
- }
- #center {
- padding: 10px 20px; /* CC padding */
- width: 100%;
- }
- #left {
- width: 180px; /* LC width */
- padding: 0 10px; /* LC padding */
- right: 240px; /* LC fullwidth + CC padding */
- margin-left: -100%;
- }
- #right {
- width: 130px; /* RC width */
- padding: 0 10px; /* RC padding */
- margin-right: -190px; /* RC fullwidth + CC padding */
- }
- #footer {
- clear: both;
- }
- /*** IE Fix ***/
- * html #left {
- left: 150px; /* RC fullwidth */
- }
当然上下的padding值能很方便的添加,具体请参看nicely padded version 中的例子
这个布局也能在em下很好的工作,但是不能在混合em和px的时候工作,选什么你来定,但是要选的正确。
等高栏
这个布局能保证所有的栏目都是等高的,实现方式是来着与One True Layout的adapted wholesale。所以我不详细解释,增加和修改代码如下
- #container {
- overflow: hidden;
- }
- #container .column {
- padding-bottom: 20010px; /* X + padding-bottom */
- margin-bottom: -20000px; /* X */
- }
- #footer {
- position: relative;
- }
我特别在下面留了10个像素
附加的说明,请注意在Opera上存在一个bug,即overflow:hidden会让你所有的栏目都变大,在One True Layout上有详细的解决办法。你可以使用这个方法或是等Opera 9(被修复了这个bug)来测试。
另一个问题是,在IE中如果内容的高度没有背景图片的高度高,背景不会被剪掉,他会超出footer。如果你没有独立的footer或是内容比背景高,这也不是个问题。如果你仍然需要一个footer,不要怕还是有解决的办法的。用一个DIV把footer封装一下就可以。
- <div id=“footer-wrapper“>
- <div id=“footer“></div>
- </div>
现在依然用上面我们使用到的让各个栏目对齐的技巧来让footer超过封装的DIV,来显示我们想要显示的内容
- * html body {
- overflow: hidden;
- }
- * html #footer-wrapper {
- float: left;
- position: relative;
- width: 100%;
- padding-bottom: 10010px;
- margin-bottom: -10000px;
- background: #fff; /* Same as body
- background */
- }
现在解决了所有的问题,得到了我们想要的结果和很少量冗余的代码。
哦,还需要说明的
完美主义者有可能是想知道是否有一个更好的方式来做到这一点?我之前声明过,我引用了一个非语义化的包含容器(DIV),确实,我们不应该包含一个额外的结构来打乱我们完美的结构.
如果你像我一样,象知道这样怎么去实现,不需要更多的结构,我向你介绍”wrapper-free Holy Grail (没有包含的圣杯)”,其最抽象的特殊之处在于,用一个DIV实现了各部分 — 不多也不少,语义化,不愧于”圣杯”的美名.其原理是相似的.主体直接应用padding不需要多余的容器,而用负边距来延伸header和footer 使其刚好达到想要的宽度.
这种布局能在所有的浏览器上正常工作,甚至(令人震惊)是在IE上,但是不是等高的.而且在非常小的窗口中是会”破掉”的,使用他的时候一定要谨慎.
最后
虽然文中提到的例子很具体,但是这项技术的使用范围确实很大.为什么不能有两个活动的中心层,为什么不调换层的顺序.这些引用都超出了本文的表述范围,但是要实现他们只需要很小的改动即可.使用圣杯是明智的.他可以成为你使用CSS的技巧之一.
如何做blog
2011年6月13日vpn是什么东西
2011年6月8日有很多人使用VPN,但不知道是个什么东西,下面我们对VPN做详细介绍:
VPN英文全称是“Virtual Private Network”,翻译成中文就是“虚拟专用网络”。vpn被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。VPN主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。
VPN可以提供的功能: 防火墙功能、认证、加密、隧道化。
VPN可以通过特殊加密的通讯协议连接到Internet上,在位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,在交换机,防火墙设备或Wind VPNows 2000及以上操作系统中都支持VPN功能,一句话,VPN的核心就是利用公共网络建立虚拟私有网。
如何安装vpn
vps上安装vpn
什么是BRAS路由器
2011年6月7日在培训时,遇到一个新的缩写,BRAS,不知道是什么东西。百度了一下,总算知道是什么玩意儿。
BRAS(Broadband Remote Access Server)是一种面向宽带网络应用的新型接入网关。也就是我们平常所说的BRAS路由器,它是宽带接入网与骨干网之间的桥梁,提供基本的接入手段和宽带接入网的管理功能。它位于网络的边缘,提供宽带接入服务、实现多种业务的汇聚与转发,能满足不同用户对传输容量和带宽利用率的要求,因此是宽带用户接入的核心设备。指DSL 、 CATV 和 FTTH 等宽带访问线路中使用的远程访问服务器。可以认为其与拨号连接中使用的远程访问服务器一样,是在路由器中增加了用户认证功能和可将 IP 地址等的设置信息通知给客户端等功能之后的东西。与拨号连接不同的是,只由Internet 通信服务提供商而非用户进行 BRAS 设置,因为规模较大,不能通过在个人计算机上安装软件作为远程访问服务器的方式来使用,需要大型的专门设备支持。






