﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-时间如流水-文章分类-日常应用</title><link>http://www.blogjava.net/sodar-fish/category/25770.html</link><description>知惜方成功
－唯有奋斗才是成功的不变准则&lt;br /&gt;xiaoc | sodar-fish | 苏达小鱼 ｜
OpenSource&gt;JAVA and Linux(Ubuntu) | walk always on my mind.</description><language>zh-cn</language><lastBuildDate>Mon, 15 Oct 2007 15:26:14 GMT</lastBuildDate><pubDate>Mon, 15 Oct 2007 15:26:14 GMT</pubDate><ttl>60</ttl><item><title>Debian 安装 设置 笔记［原创］</title><link>http://www.blogjava.net/sodar-fish/articles/152459.html</link><dc:creator>SodaR FisH (苏达小鱼)</dc:creator><author>SodaR FisH (苏达小鱼)</author><pubDate>Fri, 12 Oct 2007 12:47:00 GMT</pubDate><guid>http://www.blogjava.net/sodar-fish/articles/152459.html</guid><wfw:comment>http://www.blogjava.net/sodar-fish/comments/152459.html</wfw:comment><comments>http://www.blogjava.net/sodar-fish/articles/152459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sodar-fish/comments/commentRss/152459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sodar-fish/services/trackbacks/152459.html</trackback:ping><description><![CDATA[最近在折腾Linux.&nbsp; 这几天开始用Debian etch 版本，由于是注重服务器的版本，用作桌面还是费了我一番功夫。我是新手，<br />
解决问题也没那么迅速，暂时把这两天的问题记录一下。<br />
－－－－－－－－－－－－－－－－－－－－－<br />
1 教育网的同志们遇到的第一个头疼问题，锐捷认证。曾经用一个mystar就搞定，但是最近学校对锐捷做了升级，mystar<br />
也失效了。只好翻出古老的xrgsu来作认证。<br />
解压xrgsu的tar包，运行不出意外肯定报错。通常是关于libpcap.so版本问题，这个比较好解决，在/usr/lib下作软连接<br />
ln -s /usr/lib/libpcap.so.0.8 /usr/lib/libpcap.0.6.2 <br />
这里我的libpcap.so版本是0.8 其实debian 默认没有libpcap.so文件，这样如果有光盘的话插入光盘，然后用新利得软件包<br />
管理器安装一下libpcap即可，如果没有光盘，有镜像 iso文件，现作mount&nbsp; -o loop /xxxxx/xxxx.iso /media/cdrom<br />
然后使用新利得。<br />
另外可能还需要libstdc++.so.5 这个文件，这个作软连接是不管用的，只好去别的机器上下载一个～ 如果你没有，只好跑网吧了:)<br />
如果不想用新利得，去别的机器下载libpcap的源码包来自己编译安装也可以，这里必须下载另外两个包，分别是flex和bison<br />
，他们在libpcap的编译过程中需要用到。现安装flex和bison,在libpcap. <br />
过程很简单: 解压后进入文件夹&nbsp; <br />
&nbsp;# ./configure<br />
&nbsp;# make<br />
&nbsp;# make install<br />
注意要在root权限下运行上述命令。当然可以把用户添加到sudoer组里面用sudo 来运行<br />
<br />
然后是设置ip 和 dns&nbsp; 这里只要注意一下使用dhcp动态ip和 静态ip的区别就行了。<br />
关于xrgsu的使用参考readme文件。<br />
注意xrgsu的运行也需要root权限。<br />
－－－－－－－－－－－－－<br />
2关于网速很慢。<br />
这个问题比较头疼，普遍的做法是去掉ipv6支持。<br />
编辑 /etc/modprobe.d/alias 文件<br />
注视掉ipv6的行<br />
在末尾添加 alias ....pf-ipv6 (我己不清楚了，跟上面注释掉的行一样)&nbsp; off&nbsp; （这个可以在网上很容易的找到）<br />
alias ipv6 off<br />
保存，运行 # update-modules<br />
重启机器。<br />
<br />
但是我的感觉没有多明显，网速时快时慢，感觉很奇怪，现在还没找到原因。而且慢就慢在解析域名上。<br />
－－－－－－－－－－－－－－－－－－－－<br />
3中文字体问题<br />
我就不多说了，debian学习小组网站上很全面，这里只记录下思路<br />
dpkg-reconfig locales 改变locale为zh_CN.utf8<br />
apt-get install ttf-bitstream-vera ttf-arphic-uming<br />
在字体设置一下<br />
重启机器<br />
－－－-------<br />
4输入法安装scim 等，注意别忘了im-switch<br />
由于debian4.0更新之后的gnome版本是2.18 ，和scim的pinyin输入法有冲突，表现在无法给文件夹重命名中文。<br />
安装fcitx可以解决问题。<br />
<br />
安装完之后注销。<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
5关于firefox2 ,我在网上下载了firefox 2.0 版本的tar包，解压后直接可以运行。<br />
但是这个版本默认没有flash插件，自动安装也不成功，我从adobe flash网站上下载<br />
了install_flash_player_9_linux.tar.gz,解压后将文件夹里的libflashplayer.so 文件复制<br />
到 firefox文件夹下的 plugins文件夹中，重启firefox即可。<br />
<br />
如果你使用默认的浏览器，参考下面的引用：<br />
安装flash插件：<br />
先下载9,0,31,0稳定版<br />
http://www.adobe.com/shockwave/downl...ShockwaveFlash<br />
tar zxvf install_flash_player_9_linux.tar.gz<br />
cd install_flash_player_9_linux<br />
sudo ./flashplayer-installer<br />
安装路径填写/usr/lib/iceweasel而不是/usr/lib/mozilla<br />
install another时选no<br />
-------------------------------------------------------------------------------------<br />
6 关于文件管理器<br />
默认的桌面打开文件夹是简单窗口的模式，可以在其首选项的行为选项卡中选种 总是在浏览器中打开。<br />
即可使用类似于windows下面的文件管理器的窗口。<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
7 关于firefox<br />
我个人很喜欢这个浏览器，http://addons.mozine.cn/firefox/88/ 有很多附加插件资源，这个faster插件可以<br />
提高firefox的浏览速度。<br />
--------------------------------<br />
8 关于一些默认软件，有些默认的工具不喜欢可以删除掉，我部喜欢evolution，喜欢thunderbird，<br />
但是貌似debian里面的thunderbird叫做icedove mail，奇怪~<br />
编辑我喜欢openoffice.org，昨天晚上安装好慢，中断了，今天早上快的出奇，800多k/s，爽歪了~<br />
--------------------------<br />
9关于pdf和chm文件的查看。<br />
pdf可以用acrobat，默认好像就有，但是默认没有中文字体在这可以下载到中文语言包<a href="http://www.adobe.com/products/acrobat/acrrasianfontpack.html">http://www.adobe.com/products/acrobat/acrrasianfontpack.html</a><br />
关于chm<br />
强烈推荐chmsee，deb包chmsee的官方就有，很好找，这个近乎完美~<br />
--------------<br />
<font size="3"><strong>netselect-apt方式:</strong></font><strong><br />
`netselect-apt'会创建一个更完整的`sources.list'文件，但它使用更落后的方法来选择镜像站点<br />
</strong>
<div><code><strong>#apt-get install netselect-apt<br />
#mv sources.list sources.list.bak //backup<br />
#man netselect-apt  //获取详细的使用方法<br />
# netselect-apt -s testing<br />
//下载http: //www.debian.org/mirror/list-full文件,并根据其内容测试网络,生成sources.list<br />
也可将下载http://www.debian.org/mirror/list-full手动下载到本地, 并同过参数 -i 指定<br />
同样可以通过 -o 参数指定输出文件而不是默认的sources.list</strong></code></div>
<br />
11关于u盘的挂载乱码<br />
<br />
正确的做法是（假设你是GNOME用户）：<br />
安装 gnome-mount，然后在 Nautilus 文件管理器中，选择相应的U盘，右键查看属性，如图，这里假设你用的是 UTF-8 的 locale。<br />
<br />
OK.To Be Continued.... by sodar-fish<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/sodar-fish/aggbug/152459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sodar-fish/" target="_blank">SodaR FisH (苏达小鱼)</a> 2007-10-12 20:47 <a href="http://www.blogjava.net/sodar-fish/articles/152459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>proftp学习笔记－配置全功略</title><link>http://www.blogjava.net/sodar-fish/articles/147599.html</link><dc:creator>SodaR FisH (苏达小鱼)</dc:creator><author>SodaR FisH (苏达小鱼)</author><pubDate>Sun, 23 Sep 2007 10:41:00 GMT</pubDate><guid>http://www.blogjava.net/sodar-fish/articles/147599.html</guid><wfw:comment>http://www.blogjava.net/sodar-fish/comments/147599.html</wfw:comment><comments>http://www.blogjava.net/sodar-fish/articles/147599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sodar-fish/comments/commentRss/147599.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sodar-fish/services/trackbacks/147599.html</trackback:ping><description><![CDATA[献给大家的新年礼物哦 国内关于proftp设置的文档实在太少，只能看着官方文档慢慢学习，特把学习经验分享给大家，祝大家新年快乐：）<br />
<br />
原文地址：<a style="color: #003793;" href="http://www.5ilinux.com/blog/archives/000082.html" target="_blank"><font color="#003793">http://www.5ilinux.com/blog/archives/000082.html</font></a><br />
转载请注明出处和署名，并请保持一致 <br />
<br />
<br />
proftp学习笔记（一）<br />
这几天，公司终于放假了，终于可以安下心来好好学些proftp+mysql+quota。<br />
<br />
安装proftp之前，必须先做一个工作，假如你的mysql是自己编译的，那就必须先修改/etc/ld.so.conf，否则后面运行proftp会报错。<br />
vi /etc/ld.so.conf<br />
<br />
添加下面一行:<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>/usr/local/mysql/lib/mysql</td>
        </tr>
    </tbody>
</table>
<br />
<br />
注意大家如果mysql的安装路径于我不一样，则填写相应的路径，有关mysql的编译安装请参考《Linux+Apache+Mysql+PHP典型配置》。<br />
<br />
1。下载相关软件<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>wget <a style="color: #003793;" href="ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz" target="_blank"><font color="#003793">ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz</font></a></td>
        </tr>
    </tbody>
</table>
<br />
下载proftp的最新版本1.2.9 <br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>wget <a style="color: #003793;" href="http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.11.tar.gz" target="_blank"><font color="#003793">http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.11.tar.gz</font></a></td>
        </tr>
    </tbody>
</table>
<br />
这是配合proftp的磁盘限额的模块 <br />
2。解压编译<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>tar zvxf proftpd-1.2.9.tar.gz<br />
            <br />
            tar zvxf proftpd-mod-quotatab-1.2.11.tar.gz<br />
            <br />
            cp mod_quotatab/*.c proftpd-1.2.9/contrib/<br />
            <br />
            cp mod_quotatab/*.h proftpd-1.2.9/contrib/</td>
        </tr>
    </tbody>
</table>
<br />
<br />
vi proftpd-1.2.9/contrib/mod_sql_mysql.c<br />
找到#include 这一行，将mysql.h改成你的系统中此文件所在的路径，如/usr/local/mysql/include/mysql/mysql.h <br />
编译：<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>./configure "<br />
            --prefix=/usr/local/proftpd "<br />
            --with-modules=mod_sql:mod_sql_mysql:mod_quotatab"<br />
            :mod_quotatab_sql "<br />
            --with-includes=/usr/local/mysql/include/mysql "<br />
            --with-libraries=/usr/local/mysql/lib/mysql<br />
            make <br />
            make install</td>
        </tr>
    </tbody>
</table>
<br />
<br />
ok, 现在我们可以来启动proftp了，只要<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>/usr/local/proftpd/sbin/proftpd</td>
        </tr>
    </tbody>
</table>
<br />
用你的ftp客户端试验以下，应该可以正常登陆，包括匿名和linux用户名可以。<br />
<br />
其实默认的proftp满足日常的服务器管理用还是绰绰有余的，有个地方还是要修改一下，就是默认proftp的配置文件不支持ftp续传，所以我们只要<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>vi /usr/local/proftpd/etc/proftpd.conf</td>
        </tr>
    </tbody>
</table>
<br />
添加以下两行<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>AllowRetrieveRestart on<br />
            AllowStoreRestart on</td>
        </tr>
    </tbody>
</table>
<br />
<br />
重新启动以下proftp，就可以正常续传文件了。<br />
<br />
创建proftpd脚本<br />
<br />
只要在proftp的源代码目录<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>cp proftpd-1.2.9/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd</td>
        </tr>
    </tbody>
</table>
<br />
<br />
记得修改proftpd文件，一般要修改proftpd的实际路径<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>chmod 755 /etc/rc.d/init.d/proftpd</td>
        </tr>
    </tbody>
</table>
<br />
ok<br />
<br />
以后就可以用这个教本来启动，停止，重启proftp<br />
<br />
呵呵，今天就讲这些，明天讲些proftp的一些基础配置：）<br />
<br />
===================================<br />
<br />
原文地址：<a style="color: #003793;" href="http://www.5ilinux.com/blog/archives/000085.html" target="_blank"><font color="#003793">http://www.5ilinux.com/blog/archives/000085.html</font></a><br />
转载请注明出处和署名，并请保持一致<br />
<br />
proftp学习笔记（二）<br />
上次我们讲了proftp的基本安装，由于我们后面有关于mysql和quota的设置，所以编译的时候把相应的模块都编译进去了，如果你不需要mysql和磁盘限额的功能，完全可以不需要这么编译。<br />
<br />
这里要讲一个非常实用的命令，<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>/usr/local/proftpd/sbin/ftpshut</td>
        </tr>
    </tbody>
</table>
<br />
这个命令还是比较实用的，因为你可能需要不断的调整你的服务器，而这个命令就非常灵活，可以在不停止proftpd进程的前提下，定时停止ftp连接，这里将会详细说它是怎么使用的。<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>ftpshut [ -l min ] [ -d min ] time [ warning-message ... ]</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
-l min: 在ftp关闭服务之前的几分钟内，尝试建立新的ftp连接均不被接受<br />
-d min: 在ftp关闭服务之前的几分钟内，已经建立的ftp连接将被中止<br />
time: 在多少时间后，服务器将关闭ftp服务，格式有两种<br />
＋number 经过number分钟后关闭<br />
MMHH 在今天MM：HH服务器将关闭<br />
<br />
注意，这里我们用这个命令是把ftp服务给停了，但实际的proftpd进程还没停止，所以一般调试ftp会使用到这个命令。<br />
<br />
举例：<br />
再经过30分钟后，FTP服务将关闭，在这之前的20分钟不可接受任何新的ftp连接，已经建立的在服务关闭前10分钟强制断线，并在客户端显示&#8220;FTP Server Will shutdown at time&#8221;<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>ftpshut -l 20 -d 10 +30 "FTP Server Will shutdown at time"</td>
        </tr>
    </tbody>
</table>
<br />
<br />
其实ftpshut就是产生/etc/shutmsg ,你只要删除这个文件ftp又可以重新服务，或者<br />
直接<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>ftpshut -R</td>
        </tr>
    </tbody>
</table>
<br />
<br />
好了，开始讲一些proftpd的基本配置吧，其实大家如果熟悉apache的配置的话，你会发现proftpd的设置基本都是类似的，它的配置基本格式是<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>＃全局设置<br />
            设置项目1 参数1<br />
            设置项目2 参数2<br />
            <br />
            ＃某个目录的设置<br />
            &lt;Directory "路径名"&gt;<br />
            ...<br />
            ...<br />
            &lt;/Directory&gt;<br />
            <br />
            ＃关于匿名用户的设置<br />
            &lt;Anonymous "匿名登陆的目录"&gt;<br />
            ...<br />
            ...<br />
            &lt;Limit 限制动作&gt;<br />
            ...<br />
            ...<br />
            &lt;/Limit&gt;<br />
            &lt;/Anonymous&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
我们用到的比较多的可能是Limit的使用，Limit大致有以下动作，基本能覆盖全部的权限了，大家灵活使用就是了。<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>CMD：Change Working Directory 改变目录<br />
            MKD：MaKe Directory 建立目录的权限<br />
            RNFR： ReName FRom 更改目录名的权限<br />
            DELE：DELEte 删除文件的权限<br />
            RMD：ReMove Directory 删除目录的权限<br />
            RETR：RETRieve 从服务端下载到客户端的权限<br />
            STOR：STORe 从客户端上传到服务端的权限<br />
            READ：可读的权限，不包括列目录的权限，相当于RETR，STAT等<br />
            WRITE：写文件或者目录的权限，包括MKD和RMD<br />
            DIRS：是否允许列目录，相当于LIST，NLST等权限，还是比较实用的<br />
            ALL：所有权限<br />
            LOGIN：是否允许登陆的权限</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
针对上面这个Limit所应用的对象，又包括以下范围 <br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>AllowUser 针对某个用户允许的Limit<br />
            DenyUser 针对某个用户禁止的Limit<br />
            AllowGroup 针对某个用户组允许的Limit<br />
            DenyGroup 针对某个用户组禁止的Limit<br />
            AllowAll 针对所有用户组允许的Limit<br />
            DenyAll 针对所有用户禁止的Limit</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
关于限制速率的参数为： <br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>TransferRate STOR|RETR 速度（Kbytes/s） user 使用者</td>
        </tr>
    </tbody>
</table>
<br />
<br />
下面我们以例子来解说proftp的配置，这样大家可能更加容易理解。<br />
<br />
1。ftp服务器支持断点续传，且最大支持同时10人在线，每个ip只允许一个连接；<br />
2。允许ftpusers用户组只能访问自己的目录，而不能访问上级或者其他目录；<br />
3。用户登陆服务器时不显示ftp服务器版本信息，以增加安全性；<br />
4。建立一个kaoyan的ftp帐户，属于ftpusers组，kaoyan用户只允许下载，没有可写的权限。下载速率限制在50Kbytes/s。<br />
5。建立一个upload用户，也属于ftpusers组，同kaoyan用户的宿主目录一样，允许upload用户上传文件和创建目录的权限，但不允许下载，并且不允许删除目录和文件的权限，上传的速率控制在100Kbytes/s<br />
<br />
先是前期的用户和组添加以及目录的权限设置<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>group add ftpusers<br />
            useradd -d /home/kaoyan -g ftpusers -s /bin/fales kaoyan<br />
            useradd -d /home/kaoyan -g ftpusers -s /bin/fales upload<br />
            chown -R kaoyan:upload /home/kaoyan<br />
            chmod -R 775 /home/kaoyan</td>
        </tr>
    </tbody>
</table>
<br />
<br />
如果你只想ftpusers组的用户访问，可以设置成770都行。<br />
设置/usr/local/proftpd/etc/proftpd.conf<br />
<br />
注意#表示注释，对设置没影响，可以不写<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>ServerName "Frank's FTP Server"<br />
            ServerType standalone<br />
            DefaultServer on<br />
            Port 21<br />
            Umask 022<br />
            MaxInstances 30 #最多有30个proftpd的PID<br />
            User nobody<br />
            Group nobody<br />
            TimeoutStalled 10<br />
            MaxClients 10 #最多允许10个用户在线<br />
            MaxClientsPerHost 1 "对不起，一个IP只允许一个连接"<br />
            AllowStoreRestart on <br />
            #允许断点续传（上传），断点续续（下载）是默认支持的，不用设置<br />
            DisplayLogin welcome.msg #欢迎词文件<br />
            ServerIdent off #屏蔽服务器版本信息<br />
            DefaultRoot ~ ftpusers #设置ftpusers组只能访问自己的目录<br />
            <br />
            &lt;Directory /&gt;<br />
            AllowOverwrite on<br />
            &lt;/Directory&gt;<br />
            &lt;Directory /home/kaoyan&gt;<br />
            &lt;Limit WRITE&gt; #不允许写<br />
            DenyUser kaoyan<br />
            &lt;/Limit&gt;<br />
            &lt;Limit RMD RNFR DELE RETR&gt; #不允许删除，改名，下载<br />
            DenyUser upload<br />
            &lt;/Limit&gt;<br />
            TransferRate RETR 50 user kaoyan<br />
            TransferRate STOR 100 user upload<br />
            &lt;/Directory&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
我这里实现的方式还可以通过<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>&lt;Anonymous ~kaoyan&gt;<br />
            <br />
            ...<br />
            <br />
            ...<br />
            <br />
            &lt;/Anonymous&gt;<br />
            <br />
            &lt;&gt;&lt;Anonymous ~upload&gt;<br />
            <br />
            ...<br />
            <br />
            ...<br />
            <br />
            &lt;/Anonymous&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
而且更加灵活，具体用那种方式，看大家了，我只是给大家入个门而已<br />
<br />
好了，今天就讲到这里，明天继续讲一些proftp的其他配置<br />
<br />
======================================<br />
<br />
原文地址：<a style="color: #003793;" href="http://www.5ilinux.com/blog/archives/000088.html" target="_blank"><font color="#003793">http://www.5ilinux.com/blog/archives/000088.html</font></a><br />
转载请注明出处和署名，并请保持一致 <br />
<br />
proftp学习笔记（三）<br />
前面的两个笔记，我想大家对proftp的设置应该有些认识,是不是跟apache的配置差不多吧。我想配置过Serv_U服务器的，再稍微看一下proftp的配置规则，应该能马上能配置出一个强大的proftp服务器。<br />
<br />
这里我们再讲一些proftp的其他参数配置：<br />
<br />
MaxHostsPerUser 1 "对不起，每个帐户最多允许来源ip为1个"<br />
#MaxHostsPerUser 对防止ftp帐号还是比较有用的。<br />
<br />
MaxClientsPerUser 1 "对不起，每个帐户在每个客户端最多可以同时登陆1次"<br />
#这个参数可以防止多线程软件下载对服务器的破坏<br />
<br />
MaxClientsPerHost 1 "对不起，同一个客户端只能最多1个帐号可以登陆"<br />
#比如ftp服务端有好多帐户你都有，但也只能用1个帐号登陆<br />
<br />
呵呵，这三个Max参数比较容易搞晕，大家可要搞清他们的含义哦：）<br />
<br />
WtmpLog on <br />
#是否要把ftp记录在日志中，如果不想可以设置成off屏蔽掉log日志。<br />
<br />
TimeoutIdle 600<br />
#客户端idel时间设置，默认就是600秒<br />
<br />
DisplayLogin welcome.msg<br />
#设置ftp登陆欢迎信息文件<br />
<br />
关于欢迎文件的设置包含如下参数<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>%T 目前的时间 <br />
            <br />
            %F 所在硬盘剩下的容量 <br />
            <br />
            %C 目前所在的目录 <br />
            <br />
            %R Client 端的主机名称 <br />
            <br />
            %L Server 端的主机名称 <br />
            <br />
            %U 使用者帐户名称 <br />
            <br />
            %M 最大允许连接人数 <br />
            <br />
            %N 目前的服务器连接人数 <br />
            <br />
            %E FTP服务器管理员的 email <br />
            <br />
            %i 本次上传的文件数量 <br />
            <br />
            %o 本次下载的文件数量 <br />
            <br />
            %t 本次上传+下载的文件数量</td>
        </tr>
    </tbody>
</table>
<br />
<br />
知道这些参数，我们就可以写出一个友好的欢迎语<br />
<br />
vi /home/kaoyan/welcome.msg<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>欢迎您%U， 这是Frank的测试FTP服务器；<br />
            目前时间是：%T；<br />
            本服务器最多允许%M个用户连接数；<br />
            目前服务器上已有%N个用户连接数；<br />
            目前你所在的目录是%C;<br />
            目录所在的硬盘还剩下%F字节。</td>
        </tr>
    </tbody>
</table>
<br />
<br />
让proftp支持现在流行的FXP传输方式，默认是不支持的。<br />
只要在服务端设置<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>AllowForeignAddress on<br />
            <br />
            PassivePorts 49152 65534 #端口也可自己指定喜欢的</td>
        </tr>
    </tbody>
</table>
<br />
<br />
千万别忘了在客户端也要设置成支持FXP哦，否则想我试验了好几次，一直以为服务器没设置好，其实就是客户端没设置，呵呵。<br />
<br />
<br />
如何让root能登陆，默认proftp是不支持root登陆，我们可以设置让root也能登陆ftp，不过我在这里还是建议大家最好不要让root能登陆ftp，设置如下<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>RootLogin on</td>
        </tr>
    </tbody>
</table>
同时要修改 /etc/ftpusers&nbsp; 在root前加#注释掉<br />
如何禁止某个地址访问ftp<br />
比如禁止10.1.1网段的机器访问ftp，可以这么设置<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>&lt;Limit LOGIN&gt;<br />
            Order deny,allow<br />
            Deny from 10.1.1.<br />
            Allow from all<br />
            &lt;/Limit&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
虚拟ftp的建立，一般用于一台ftp服务器有好多ip地址，或者ftp用不同的端口，基本设置语法是:<br />
<br />
比如我们要做一个端口是5555的ftp服务器：<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>&lt;VirtualHost 210.51.0.124&gt;<br />
            ServerName "Frank FTP Server"<br />
            Port 5555<br />
            ...<br />
            &lt;Directory 目录&gt;<br />
            ...<br />
            &lt;Limit 动作&gt;<br />
            ...<br />
            &lt;/Limit&gt;<br />
            ...<br />
            &lt;/Directory&gt;<br />
            &lt;/VirtualHost&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<br />
至于虚拟主机中的其他设置跟我以前讲的基本差不多<br />
<br />
上传/下载比率设置，我想用过Serv_U的朋友一定知道这个功能的使用，我们这里让proftp也实现这个功能。<br />
要实现功能注意编译的时候加入ratio模块，否则proftp默认是不支持，假设有个帐户ftp1的ftp目录在/home/kaoyan ，然后我们设置ftp1的上传/下载比率是1：2（即上传1M，就可以下载2M）<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>touch /home/kaoyan/ratio.dat<br />
            touch /home/kaoyan/ratio.tmp<br />
            chmod -R 666 /home/kaoyan</td>
        </tr>
    </tbody>
</table>
<br />
在proftpd.conf设置如下<br />
<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>Ratios on<br />
            SaveRatios on<br />
            RatioFile /home/kaoyan/ratio.dat<br />
            RatioTempFile /home/kaoyan/ratio.tmp</td>
        </tr>
    </tbody>
</table>
<br />
<br />
在相应的设置项里添加<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>UserRatio ftp1 0 0 2 1000<br />
            #UserRatio "使用者帐户" fileratio filequota byteratio bytequota<br />
            #　 fileratio ：以文件为基础的比率，通常不限制，故为 0 <br />
            #　 filequota ：预设置能下载多少文件，不限制时为 0 <br />
            #　 byteratio ：就是上传/下载的比例,如果数字为2，表示1:2 <br />
            #　 bytequota ：预设置能下载多少 KBytes 的文件<br />
            #上面设置的就是1：2的比率，默认只允许下载1M的文件</td>
        </tr>
    </tbody>
</table>
<br />
<br />
ok,重启一下，以后ftp1就可以启用上传/下载比率了<br />
<br />
=======================================<br />
<br />
原文地址：<a style="color: #003793;" href="http://www.5ilinux.com/blog/archives/000091.html" target="_blank"><font color="#003793">http://www.5ilinux.com/blog/archives/000091.html</font></a> <br />
转载请注明出处和署名，并请保持一致<br />
<br />
<br />
proftp学习笔记（四）<br />
今天我们讲proftp＋mysql＋quota的应用，我想大家最期待的就是这个了吧<br />
<br />
1.首先我们建立相应的用户和用户组<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>groupadd -g 5500 ftpgroup<br />
            adduser -u 5500 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser</td>
        </tr>
    </tbody>
</table>
<br />
2.操作数据库<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>mysql mysql -uroot -ppassword<br />
            create database ftpdb<br />
            grant select, update on ftpdb.* to proftpd@localhost identified by 'password' <br />
            use ftpdb<br />
            <br />
            <br />
            CREATE TABLE `ftpgroup` (<br />
            `groupname` varchar(16) NOT NULL default '',<br />
            `gid` smallint(6) NOT NULL default '5500',<br />
            `members` varchar(16) NOT NULL default '',<br />
            KEY `groupname` (`groupname`)<br />
            ) TYPE=MyISAM COMMENT='ProFTP group table';<br />
            <br />
            INSERT INTO `ftpgroup` VALUES ('ftpgroup', 5500, 'ftpuser');<br />
            <br />
            CREATE TABLE `ftpquotalimits` (<br />
            `name` varchar(30) default NULL,<br />
            `quota_type` enum('user','group','class','all') NOT NULL default 'user',<br />
            `per_session` enum('false','true') NOT NULL default 'false',<br />
            `limit_type` enum('soft','hard') NOT NULL default 'soft',<br />
            `bytes_in_avail` float NOT NULL default '0',<br />
            `bytes_out_avail` float NOT NULL default '0',<br />
            `bytes_xfer_avail` float NOT NULL default '0',<br />
            `files_in_avail` int(10) unsigned NOT NULL default '0',<br />
            `files_out_avail` int(10) unsigned NOT NULL default '0',<br />
            `files_xfer_avail` int(10) unsigned NOT NULL default '0'<br />
            ) TYPE=MyISAM;<br />
            <br />
            CREATE TABLE `ftpquotatallies` (<br />
            `name` varchar(30) NOT NULL default '',<br />
            `quota_type` enum('user','group','class','all') NOT NULL default 'user',<br />
            `bytes_in_used` float NOT NULL default '0',<br />
            `bytes_out_used` float NOT NULL default '0',<br />
            `bytes_xfer_used` float NOT NULL default '0',<br />
            `files_in_used` int(10) unsigned NOT NULL default '0',<br />
            `files_out_used` int(10) unsigned NOT NULL default '0',<br />
            `files_xfer_used` int(10) unsigned NOT NULL default '0'<br />
            ) TYPE=MyISAM;<br />
            <br />
            CREATE TABLE `ftpuser` (<br />
            `id` int(10) unsigned NOT NULL auto_increment,<br />
            `userid` varchar(32) NOT NULL default '',<br />
            `passwd` varchar(32) NOT NULL default '',<br />
            `uid` smallint(6) NOT NULL default '5500',<br />
            `gid` smallint(6) NOT NULL default '5500',<br />
            `homedir` varchar(255) NOT NULL default '',<br />
            `shell` varchar(16) NOT NULL default '/sbin/nologin',<br />
            `count` int(11) NOT NULL default '0',<br />
            `accessed` datetime NOT NULL default '0000-00-00 00:00:00',<br />
            `modified` datetime NOT NULL default '0000-00-00 00:00:00',<br />
            PRIMARY KEY (`id`)<br />
            ) TYPE=MyISAM COMMENT='ProFTP user table';</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
注意这里大家根据实际情况填写自己数据库的用户名和密码，如果大家对数据库操作不熟悉的话，不妨可以用phpmyadmin来操作。<br />
<br />
3.配置proftp文件<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>ServerName "Frank's FTP Server" ServerType standalone DefaultServer on <br />
            Port 21<br />
            <br />
            Umask 022<br />
            <br />
            MaxInstances 30<br />
            MaxLoginAttempts 3<br />
            <br />
            User nobody<br />
            Group nobody<br />
            <br />
            MaxHostsPerUser 1 "Sorry, you may not connect more than one time."<br />
            MaxClientsPerUser 2 "Only one such user at a time."<br />
            MaxClientsPerHost 3 "Sorry, you may not connect more than one time."<br />
            <br />
            RootLogin off<br />
            RequireValidShell off<br />
            TimeoutStalled 10<br />
            MaxClients 10<br />
            AllowForeignAddress on<br />
            AllowStoreRestart on<br />
            ServerIdent off<br />
            DefaultRoot ~ ftpgroup<br />
            <br />
            SQLAuthTypes Backend Plaintext<br />
            #Backend表示用户认证方式为MySQL数据库的认证方式 <br />
            #Plaintext表示明文认证方式，排在最前面的为最先使用的方式<br />
            SQLAuthenticate users* groups*<br />
            <br />
            # databasename@host database_user user_password<br />
            SQLConnectInfo ftpdb@localhost proftpd password<br />
            SQLUserInfo ftpuser userid passwd uid gid homedir shell<br />
            SQLGroupInfo ftpgroup groupname gid members<br />
            SQLHomedirOnDemand on<br />
            #如果用户主目录不存在，则系统会根据此用户在用户数据表中的homedir字段的值新建一个目录<br />
            # Update count every time user logs in<br />
            SQLLog PASS updatecount<br />
            SQLNamedQuery updatecount UPDATE "count=count+1,accessed=now() WHERE userid='%u'" ftpuser<br />
            # Update modified everytime user uploads or deletes a file<br />
            SQLLog STOR,DELE modified<br />
            SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser<br />
            <br />
            QuotaEngine on<br />
            QuotaDirectoryTally on<br />
            QuotaDisplayUnits Mb<br />
            QuotaShowQuotas on<br />
            QuotaLog "/var/log/quota"<br />
            SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avai<br />
            l, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}'<br />
            AND quota_type = '%{1}'"<br />
            <br />
            SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_i<br />
            n_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"<br />
            <br />
            SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used<br />
            + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_<br />
            out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquota<br />
            tallies<br />
            <br />
            SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies<br />
            <br />
            QuotaLimitTable sql:/get-quota-limit<br />
            QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
<br />
ok,就这么简单，重启一下proftp服务就已经能使用proftp＋mysql＋quota的功能<br />
<br />
我们可以在数据库ftpuser添加一个虚拟用户，<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>INSERT INTO `ftpuser` VALUES (1, 'test', 'ftppasswd', 5500, 5500, '/home/test', '/sbin/nologin');</td>
        </tr>
    </tbody>
</table>
<br />
大家可以在phpmyadmin里直接操作添加一个用户，相信不用我教大家怎么添加吧：）<br />
<br />
如果你想设置quota，只要在ftpquotalimits表里设置一下就行了，这个表里的各个参数分别代表：<br />
<br />
<strong>代码：</strong><br />
<table bgcolor="#edf4f8" cellpadding="4" cellspacing="1">
    <tbody>
        <tr>
            <td>quotalimits表 <br />
            name： - 用户帐号<br />
            quota type： - user, group, class, all (we use user)<br />
            per_session： - true or false (we use true)<br />
            limit_type： - 硬限制 or 软限制 (我们一般用硬限制)<br />
            bytes_in_avail： - 允许上传的字节数<br />
            bytes_out_avail： - 允许下载的字节数<br />
            bytes_xfer_avail： - 允许传输的字节数（包括上传/下载）<br />
            files_in_avail： - 允许上传的文件数<br />
            files_out_avail： - 允许下载的文件数<br />
            files_xfer_avail： - 允许传输的文件数（包括上传/下载）</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
老实说用mysql和quota模块来验证用户和设置磁盘限额，但我总觉得还是不够完善，因为在这个方法中，数据库表里还没有相应的权限的字段，所以说相
应用户的权限还是得用实际得用户即mysql对应得uid和gid来控制权限，那天要是mysql数据库也能完全控制权限就好了。<br />
<br />
<br />
这个春节一直在学习proftp，终于可以松口气了，希望我的学习笔记可以对一些想学习proftp的朋友有所帮助，请多交流
<img src ="http://www.blogjava.net/sodar-fish/aggbug/147599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sodar-fish/" target="_blank">SodaR FisH (苏达小鱼)</a> 2007-09-23 18:41 <a href="http://www.blogjava.net/sodar-fish/articles/147599.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改键位映射，打造自己的个性键盘 [转自赵翔鹏的Blog]</title><link>http://www.blogjava.net/sodar-fish/articles/144361.html</link><dc:creator>SodaR FisH (苏达小鱼)</dc:creator><author>SodaR FisH (苏达小鱼)</author><pubDate>Tue, 11 Sep 2007 13:12:00 GMT</pubDate><guid>http://www.blogjava.net/sodar-fish/articles/144361.html</guid><wfw:comment>http://www.blogjava.net/sodar-fish/comments/144361.html</wfw:comment><comments>http://www.blogjava.net/sodar-fish/articles/144361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sodar-fish/comments/commentRss/144361.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sodar-fish/services/trackbacks/144361.html</trackback:ping><description><![CDATA[http://www.blog.edu.cn/user1/2746/archives/2004/5151.shtml<br />
<strong>摘要：</strong>
<p>修改注册表，定义键位映射，不仅可以交换某几个键位的位置，还可以增强键盘的功能，比如把右alt键、右win键等设置为调整音量大小等。</p>
<p>实在受不了在latex中反复的按\键，右手的负担太重了，所以我就把capslock键换成了\，又把右侧的win键换成了capslock。方法是定义scancode的mapping，重定义这两个键的scancode。</p>
<p><strong>正文：</strong></p>
<p>打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout，新建Scancode Map键，类型为二进制值。在输入键值之前，先在纸上把整个数据按次序写一下：<br />
00000000&nbsp; header version (zero)&nbsp; 必须为0<br />
00000000&nbsp; header flags (zero)&nbsp; 必须为0<br />
00000003&nbsp; number of entries (including terminator)&nbsp; 映射个数加1<br />
003A002B&nbsp; map CAPSLOCK (0x3A) to \&nbsp; 一个映射<br />
E05C003A&nbsp; RWin to capslock 另一个映射<br />
00000000&nbsp; null terminator map&nbsp; 必须为0</p>
<p>每个映射中，前半部分是原先按键的scancode，后半是要改成的scancode。所有按键的scancode在最后的表中列出。</p>
<p>注意不能直接输入上面的值。注册表中，二进制值要把每个字节高低位重新排一下，如：<br />
00000000 00000000 03000000 2B003A00 3A005CE0 00000000 <br />
再输入。输入之后看起来是这样：<br />
<img style="cursor: pointer" onclick="javascript:window.open(this.src);" src="http://www.blog.edu.cn/uploadfile/20041128101954547.GIF" onload="rsimg(this,500)"  alt="" /></p>
<p>最后重启机器就可以了<img style="cursor: pointer" onclick="javascript:window.open(this.src);" src="http://www.blog.edu.cn/images/emot/face8.gif" onload="rsimg(this,500)"  alt="" /></p>
<p>可以定义别的映射，比如把右alt（E038）设为静音(E020)等。要注意修改第3个字节中的映射个数值。</p>
<p>最后，我还想把[]和{}互换，但这不能用这种方法来做，估计必须修改kbdus.dll，定义自己的语言才行。还没找到怎么改kbdus.dll的方法&#8230;&#8230;<br />
</p>
<p>Update:<br />
</p>
<p>终于找到了修改键位的软件！KEYBOARD LAYOUT MANAGER，主页是<br />
<a href="http://www.klm.freeservers.com/">http://www.klm.freeservers.com</a><br />
我下的是medium版，现在可以修改[]和{}了：）</p>
<p>这是共享软件，但它的原理不过是是生成新的kbdus.dll而已，我想只要把\windows\system32\kbdus.dll拷出来做个备份就可以了吧。</p>
<h3>附：scancode表(注意我们只需用到MAKE code)</h3>
MAKE code - code generated when key is pressed. <br />
BREAK code - code generated when key is released. <br />
<p>&nbsp;</p>
<p>&nbsp;</p>
<center>
<table border="1">
    <tbody>
        <tr valign="top">
            <td align="center" colspan="6">Keyboard Scan Codes Set 1<br />
            </td>
        </tr>
        <tr valign="top">
            <td align="center"><strong>KEY Name</strong></td>
            <td align="center"><strong>Define Value (decimal) </strong></td>
            <td align="center"><strong>Label</strong></td>
            <td align="center"><strong>Additional Label </strong></td>
            <td align="center"><strong>MAKE (hex) </strong></td>
            <td align="center"><strong>BREAK (hex) </strong><br />
            </td>
        </tr>
        <tr valign="top">
            <td>Escape</td>
            <td>1</td>
            <td>Esc</td>
            <td></td>
            <td>0x01</td>
            <td>0x81<br />
            </td>
        </tr>
        <tr valign="top">
            <td>1</td>
            <td>2</td>
            <td>1</td>
            <td>!</td>
            <td>0x02</td>
            <td>0x82<br />
            </td>
        </tr>
        <tr valign="top">
            <td>2</td>
            <td>3</td>
            <td>2</td>
            <td>@</td>
            <td>0x03</td>
            <td>0x83<br />
            </td>
        </tr>
        <tr valign="top">
            <td>3</td>
            <td>4</td>
            <td>3</td>
            <td>#</td>
            <td>0x04</td>
            <td>0x84<br />
            </td>
        </tr>
        <tr valign="top">
            <td>4</td>
            <td>5</td>
            <td>4</td>
            <td>$</td>
            <td>0x05</td>
            <td>0x85<br />
            </td>
        </tr>
        <tr valign="top">
            <td>5</td>
            <td>6</td>
            <td>5</td>
            <td>%</td>
            <td>0x06</td>
            <td>0x86<br />
            </td>
        </tr>
        <tr valign="top">
            <td>6</td>
            <td>7</td>
            <td>6</td>
            <td>^</td>
            <td>0x07</td>
            <td>0x87<br />
            </td>
        </tr>
        <tr valign="top">
            <td>7</td>
            <td>8</td>
            <td>7</td>
            <td>&amp;</td>
            <td>0x08</td>
            <td>0x88<br />
            </td>
        </tr>
        <tr valign="top">
            <td>8</td>
            <td>9</td>
            <td>8</td>
            <td>*</td>
            <td>0x09</td>
            <td>0x89<br />
            </td>
        </tr>
        <tr valign="top">
            <td>9</td>
            <td>10</td>
            <td>9</td>
            <td>(</td>
            <td>0x0A</td>
            <td>0x8A<br />
            </td>
        </tr>
        <tr valign="top">
            <td>0</td>
            <td>11</td>
            <td>0</td>
            <td>)</td>
            <td>0x0B</td>
            <td>0x8B<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Minus</td>
            <td>12</td>
            <td>-</td>
            <td>_</td>
            <td>0x0C</td>
            <td>0x8C<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Equal</td>
            <td>13</td>
            <td>=</td>
            <td>+</td>
            <td>0x0D</td>
            <td>0x8D<br />
            </td>
        </tr>
        <tr valign="top">
            <td>BackSpace</td>
            <td>14</td>
            <td>BackSpace</td>
            <td></td>
            <td>0x0E</td>
            <td>0x8E<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Tab</td>
            <td>15</td>
            <td>Tab</td>
            <td></td>
            <td>0x0F</td>
            <td>0x8F<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Q</td>
            <td>16</td>
            <td>Q</td>
            <td></td>
            <td>0x10</td>
            <td>0x90<br />
            </td>
        </tr>
        <tr valign="top">
            <td>W</td>
            <td>17</td>
            <td>W</td>
            <td></td>
            <td>0x11</td>
            <td>0x91<br />
            </td>
        </tr>
        <tr valign="top">
            <td>E</td>
            <td>18</td>
            <td>E</td>
            <td></td>
            <td>0x12</td>
            <td>0x92<br />
            </td>
        </tr>
        <tr valign="top">
            <td>R</td>
            <td>19</td>
            <td>R</td>
            <td></td>
            <td>0x13</td>
            <td>0x93<br />
            </td>
        </tr>
        <tr valign="top">
            <td>T</td>
            <td>20</td>
            <td>T</td>
            <td></td>
            <td>0x14</td>
            <td>0x94<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Y</td>
            <td>21</td>
            <td>Y</td>
            <td></td>
            <td>0x15</td>
            <td>0x95<br />
            </td>
        </tr>
        <tr valign="top">
            <td>U</td>
            <td>22</td>
            <td>U</td>
            <td></td>
            <td>0x16</td>
            <td>0x96<br />
            </td>
        </tr>
        <tr valign="top">
            <td>I</td>
            <td>23</td>
            <td>I</td>
            <td></td>
            <td>0x17</td>
            <td>0x97<br />
            </td>
        </tr>
        <tr valign="top">
            <td>O</td>
            <td>24</td>
            <td>O</td>
            <td></td>
            <td>0x18</td>
            <td>0x98<br />
            </td>
        </tr>
        <tr valign="top">
            <td>P</td>
            <td>25</td>
            <td>P</td>
            <td></td>
            <td>0x19</td>
            <td>0x99<br />
            </td>
        </tr>
        <tr valign="top">
            <td>LBrace</td>
            <td>26</td>
            <td>[</td>
            <td>{</td>
            <td>0x1A</td>
            <td>0x9A<br />
            </td>
        </tr>
        <tr valign="top">
            <td>RBrace</td>
            <td>27</td>
            <td>]</td>
            <td>}</td>
            <td>0x1B</td>
            <td>0x9B<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Enter</td>
            <td>28</td>
            <td>Enter</td>
            <td></td>
            <td>0x1C</td>
            <td>0x9C<br />
            </td>
        </tr>
        <tr valign="top">
            <td>LCtrl</td>
            <td>29</td>
            <td>Ctrl (left) </td>
            <td></td>
            <td>0x1D</td>
            <td>0x9D<br />
            </td>
        </tr>
        <tr valign="top">
            <td>A</td>
            <td>30</td>
            <td>A</td>
            <td></td>
            <td>0x1E</td>
            <td>0x9E<br />
            </td>
        </tr>
        <tr valign="top">
            <td>S</td>
            <td>31</td>
            <td>S</td>
            <td></td>
            <td>0x1F</td>
            <td>0x9F<br />
            </td>
        </tr>
        <tr valign="top">
            <td>D</td>
            <td>32</td>
            <td>D</td>
            <td></td>
            <td>0x20</td>
            <td>0xA0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F</td>
            <td>33</td>
            <td>F</td>
            <td></td>
            <td>0x21</td>
            <td>0xA1<br />
            </td>
        </tr>
        <tr valign="top">
            <td>G</td>
            <td>34</td>
            <td>G</td>
            <td></td>
            <td>0x22</td>
            <td>0xA2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>H</td>
            <td>35</td>
            <td>H</td>
            <td></td>
            <td>0x23</td>
            <td>0xA3<br />
            </td>
        </tr>
        <tr valign="top">
            <td>J</td>
            <td>36</td>
            <td>J</td>
            <td></td>
            <td>0x24</td>
            <td>0xA4<br />
            </td>
        </tr>
        <tr valign="top">
            <td>K</td>
            <td>37</td>
            <td>K</td>
            <td></td>
            <td>0x25</td>
            <td>0xA5<br />
            </td>
        </tr>
        <tr valign="top">
            <td>L</td>
            <td>38</td>
            <td>L</td>
            <td></td>
            <td>0x26</td>
            <td>0xA6<br />
            </td>
        </tr>
        <tr valign="top">
            <td>SemiColon</td>
            <td>39</td>
            <td>;</td>
            <td>: </td>
            <td>0x27</td>
            <td>0xA7<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Quote</td>
            <td>40</td>
            <td>'</td>
            <td>"</td>
            <td>0x28</td>
            <td>0xA8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Tilde</td>
            <td>41</td>
            <td>`</td>
            <td>~</td>
            <td>0x29</td>
            <td>0xA9<br />
            </td>
        </tr>
        <tr valign="top">
            <td>LShift</td>
            <td>42</td>
            <td>Shift (left) </td>
            <td></td>
            <td>0x2A</td>
            <td>0xAA<br />
            </td>
        </tr>
        <tr valign="top">
            <td>BackSlash</td>
            <td>43</td>
            <td>\</td>
            <td>|</td>
            <td>0x2B</td>
            <td>0xAB<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Z</td>
            <td>44</td>
            <td>Z</td>
            <td></td>
            <td>0x2C</td>
            <td>0xAC<br />
            </td>
        </tr>
        <tr valign="top">
            <td>X</td>
            <td>45</td>
            <td>X</td>
            <td></td>
            <td>0x2D</td>
            <td>0xAD<br />
            </td>
        </tr>
        <tr valign="top">
            <td>C</td>
            <td>46</td>
            <td>C</td>
            <td></td>
            <td>0x2E</td>
            <td>0xAE<br />
            </td>
        </tr>
        <tr valign="top">
            <td>V</td>
            <td>47</td>
            <td>V</td>
            <td></td>
            <td>0x2F</td>
            <td>0xAF<br />
            </td>
        </tr>
        <tr valign="top">
            <td>B</td>
            <td>48</td>
            <td>B</td>
            <td></td>
            <td>0x30</td>
            <td>0xB0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>N</td>
            <td>49</td>
            <td>N</td>
            <td></td>
            <td>0x31</td>
            <td>0xB1<br />
            </td>
        </tr>
        <tr valign="top">
            <td>M</td>
            <td>50</td>
            <td>M</td>
            <td></td>
            <td>0x32</td>
            <td>0xB2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Comma</td>
            <td>51</td>
            <td>,</td>
            <td>&lt;</td>
            <td>0x33</td>
            <td>0xB3<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Period</td>
            <td>52</td>
            <td>.</td>
            <td>&gt;</td>
            <td>0x34</td>
            <td>0xB4<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Slash</td>
            <td>53</td>
            <td>/</td>
            <td>?</td>
            <td>0x35</td>
            <td>0xB5<br />
            </td>
        </tr>
        <tr valign="top">
            <td>RShift</td>
            <td>54</td>
            <td>Shift (right) </td>
            <td></td>
            <td>0x36</td>
            <td>0xB6<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_Multiply</td>
            <td>55</td>
            <td>*</td>
            <td></td>
            <td>0x37</td>
            <td>0xB7<br />
            </td>
        </tr>
        <tr valign="top">
            <td>LAlt</td>
            <td>56</td>
            <td>Alt (left) </td>
            <td></td>
            <td>0x38</td>
            <td>0xB8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Space</td>
            <td>57</td>
            <td>SpaceBar</td>
            <td></td>
            <td>0x39</td>
            <td>0xB9<br />
            </td>
        </tr>
        <tr valign="top">
            <td>CapsLock</td>
            <td>58</td>
            <td>CapsLock</td>
            <td></td>
            <td>0x3A</td>
            <td>0xBA<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F1</td>
            <td>59</td>
            <td>F1</td>
            <td></td>
            <td>0x3B</td>
            <td>0xBB<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F2</td>
            <td>60</td>
            <td>F2</td>
            <td></td>
            <td>0x3C</td>
            <td>0xBC<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F3</td>
            <td>61</td>
            <td>F3</td>
            <td></td>
            <td>0x3D</td>
            <td>0xBD<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F4</td>
            <td>62</td>
            <td>F4</td>
            <td></td>
            <td>0x3E</td>
            <td>0xBE<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F5</td>
            <td>63</td>
            <td>F5</td>
            <td></td>
            <td>0x3F</td>
            <td>0xBF<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F6</td>
            <td>64</td>
            <td>F6</td>
            <td></td>
            <td>0x40</td>
            <td>0xC0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F7</td>
            <td>65</td>
            <td>F7</td>
            <td></td>
            <td>0x41</td>
            <td>0xC1<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F8</td>
            <td>66</td>
            <td>F8</td>
            <td></td>
            <td>0x42</td>
            <td>0xC2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F9</td>
            <td>67</td>
            <td>F9</td>
            <td></td>
            <td>0x43</td>
            <td>0xC3<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F10</td>
            <td>68</td>
            <td>F10</td>
            <td></td>
            <td>0x44</td>
            <td>0xC4<br />
            </td>
        </tr>
        <tr valign="top">
            <td>NumLock</td>
            <td>69</td>
            <td>NumLock</td>
            <td></td>
            <td>0x45</td>
            <td>0xC5<br />
            </td>
        </tr>
        <tr valign="top">
            <td>ScrollLock</td>
            <td>70</td>
            <td>Scroll Lock </td>
            <td></td>
            <td>0x46</td>
            <td>0xC6<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_7</td>
            <td>71</td>
            <td>7</td>
            <td>Home</td>
            <td>0x47</td>
            <td>0xC7<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_8</td>
            <td>72</td>
            <td>8</td>
            <td>ArrowU</td>
            <td>0x48</td>
            <td>0xC8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_9</td>
            <td>73</td>
            <td>9</td>
            <td>PgUp</td>
            <td>0x49</td>
            <td>0xC9<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_Minus</td>
            <td>74</td>
            <td>-</td>
            <td></td>
            <td>0x4A</td>
            <td>0xCA<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_4</td>
            <td>75</td>
            <td>4</td>
            <td>ArrowL</td>
            <td>0x4B</td>
            <td>0xCB<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_5</td>
            <td>76</td>
            <td>5</td>
            <td></td>
            <td>0x4C</td>
            <td>0xCC<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_6</td>
            <td>77</td>
            <td>6</td>
            <td>ArrowR</td>
            <td>0x4D</td>
            <td>0xCD<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_Plus</td>
            <td>78</td>
            <td>+</td>
            <td></td>
            <td>0x4E</td>
            <td>0xCE<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_1</td>
            <td>79</td>
            <td>1</td>
            <td>End</td>
            <td>0x4F</td>
            <td>0xCF<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_2</td>
            <td>80</td>
            <td>2</td>
            <td>ArrowD</td>
            <td>0x50</td>
            <td>0xD0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_3</td>
            <td>81</td>
            <td>3</td>
            <td>PgDn</td>
            <td>0x51</td>
            <td>0xD1<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_0</td>
            <td>82</td>
            <td>0</td>
            <td>Ins</td>
            <td>0x52</td>
            <td>0xD2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_Decimal</td>
            <td>83</td>
            <td>.</td>
            <td>Del</td>
            <td>0x53</td>
            <td>0xD3<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F11</td>
            <td>84</td>
            <td>F11</td>
            <td></td>
            <td>0x57</td>
            <td>0xD7<br />
            </td>
        </tr>
        <tr valign="top">
            <td>F12</td>
            <td>85</td>
            <td>F12</td>
            <td></td>
            <td>0x58</td>
            <td>0xD8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>PrintScreen</td>
            <td>86</td>
            <td>Print Screen </td>
            <td>SysRq</td>
            <td>0xE0 0x2A 0xE0 0x37 </td>
            <td>0xE0 0xB7 0xE0 0xAA <br />
            </td>
        </tr>
        <tr valign="top">
            <td>Pause</td>
            <td>87</td>
            <td>Pause</td>
            <td>Break</td>
            <td>0xE1 0x1D 0x45 0xE1 0x9D 0xC5 </td>
            <td>-NONE-<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_Enter</td>
            <td>88</td>
            <td>Enter</td>
            <td></td>
            <td>0xE0 0x1C</td>
            <td>0xE0 0x9C<br />
            </td>
        </tr>
        <tr valign="top">
            <td>RCtrl</td>
            <td>89</td>
            <td>Ctrl (right) </td>
            <td></td>
            <td>0xE0 0x1D</td>
            <td>0xE0 0x9D<br />
            </td>
        </tr>
        <tr valign="top">
            <td>KP_Slash</td>
            <td>90</td>
            <td>/</td>
            <td></td>
            <td>0xE0 0x35</td>
            <td>0xE0 0xB5<br />
            </td>
        </tr>
        <tr valign="top">
            <td>RAlt</td>
            <td>91</td>
            <td>Alt (right) </td>
            <td></td>
            <td>0xE0 0x38</td>
            <td>0xE0 0xB8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Home</td>
            <td>92</td>
            <td>Home</td>
            <td></td>
            <td>0xE0 0x47</td>
            <td>0xE0 0xC7<br />
            </td>
        </tr>
        <tr valign="top">
            <td>ArrowU</td>
            <td>93</td>
            <td>ArrowU</td>
            <td></td>
            <td>0xE0 0x48</td>
            <td>0xE0 0xC8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>PageUp</td>
            <td>94</td>
            <td>Page Up </td>
            <td></td>
            <td>0xE0 0x49</td>
            <td>0xE0 0xC9<br />
            </td>
        </tr>
        <tr valign="top">
            <td>ArrowL</td>
            <td>95</td>
            <td>ArrowL</td>
            <td></td>
            <td>0xE0 0x4B</td>
            <td>0xE0 0xCB<br />
            </td>
        </tr>
        <tr valign="top">
            <td>ArrowR</td>
            <td>96</td>
            <td>ArrowR</td>
            <td></td>
            <td>0xE0 0x4D</td>
            <td>0xE0 0xCD<br />
            </td>
        </tr>
        <tr valign="top">
            <td>End</td>
            <td>97</td>
            <td>End</td>
            <td></td>
            <td>0xE0 0x4F</td>
            <td>0xE0 0xCF<br />
            </td>
        </tr>
        <tr valign="top">
            <td>ArrowD</td>
            <td>98</td>
            <td>ArrowD</td>
            <td></td>
            <td>0xE0 0x50</td>
            <td>0xE0 0xD0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>PageDown</td>
            <td>99</td>
            <td>Page Down </td>
            <td></td>
            <td>0xE0 0x51</td>
            <td>0xE0 0xD1<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Insert</td>
            <td>100</td>
            <td>Insert</td>
            <td></td>
            <td>0xE0 0x52</td>
            <td>0xE0 0xD2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Delete</td>
            <td>101</td>
            <td>Delete</td>
            <td></td>
            <td>0xE0 0x53</td>
            <td>0xE0 0xD3<br />
            </td>
        </tr>
        <tr valign="top">
            <td>LWin</td>
            <td>102</td>
            <td>LWin</td>
            <td></td>
            <td>0xE0 0x5B</td>
            <td>0xE0 0xDB<br />
            </td>
        </tr>
        <tr valign="top">
            <td>RWin</td>
            <td>103</td>
            <td>RWin</td>
            <td></td>
            <td>0xE0 0x5C</td>
            <td>0xE0 0xDC<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Menu</td>
            <td>104</td>
            <td>Menu</td>
            <td></td>
            <td>0xE0 0x5D</td>
            <td>0xE0 0xDD<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Power</td>
            <td>105</td>
            <td>Power</td>
            <td></td>
            <td>0xE0 0x5E</td>
            <td>0xE0 0xDE<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Sleep</td>
            <td>106</td>
            <td>Sleep</td>
            <td></td>
            <td>0xE0 0x5F</td>
            <td>0xE0 0xDF<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Wake</td>
            <td>107</td>
            <td>Wake</td>
            <td></td>
            <td>0xE0 0x63</td>
            <td>0xE0 0xE3<br />
            </td>
        </tr>
        <tr valign="top">
            <td>NextTrack</td>
            <td>108</td>
            <td>Next Track </td>
            <td></td>
            <td>0xE0 0x19</td>
            <td>0xE0 0x99<br />
            </td>
        </tr>
        <tr valign="top">
            <td>PreviousTrack</td>
            <td>109</td>
            <td>Previous Track </td>
            <td></td>
            <td>0xE0 0x10</td>
            <td>0xE0 0x90<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Stop</td>
            <td>110</td>
            <td>Stop</td>
            <td></td>
            <td>0xE0 0x24</td>
            <td>0xE0 0xA4<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Play_Pause</td>
            <td>111</td>
            <td>Play_Pause</td>
            <td></td>
            <td>0xE0 0x22</td>
            <td>0xE0 0xA2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Mute</td>
            <td>112</td>
            <td>Mute</td>
            <td></td>
            <td>0xE0 0x20</td>
            <td>0xE0 0xA0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>VolumeUp</td>
            <td>113</td>
            <td>Volume Up </td>
            <td></td>
            <td>0xE0 0x30</td>
            <td>0xE0 0xB0<br />
            </td>
        </tr>
        <tr valign="top">
            <td>VolumeDown</td>
            <td>114</td>
            <td>Volume Down </td>
            <td></td>
            <td>0xE0 0x2E</td>
            <td>0xE0 0xAE<br />
            </td>
        </tr>
        <tr valign="top">
            <td>MediaSelect</td>
            <td>115</td>
            <td>Media</td>
            <td></td>
            <td>0xE0 0x6D</td>
            <td>0xE0 0xED<br />
            </td>
        </tr>
        <tr valign="top">
            <td>EMail</td>
            <td>116</td>
            <td>E-Mail</td>
            <td></td>
            <td>0xE0 0x6C</td>
            <td>0xE0 0xEC<br />
            </td>
        </tr>
        <tr valign="top">
            <td>Calculator</td>
            <td>117</td>
            <td>Calculator</td>
            <td></td>
            <td>0xE0 0x21</td>
            <td>0xE0 0xA1<br />
            </td>
        </tr>
        <tr valign="top">
            <td>MyComputer</td>
            <td>118</td>
            <td>My Computer </td>
            <td></td>
            <td>0xE0 0x6B</td>
            <td>0xE0 0xEB<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWSearch</td>
            <td>119</td>
            <td>WWW Search </td>
            <td></td>
            <td>0xE0 0x65</td>
            <td>0xE0 0xE5<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWHome</td>
            <td>120</td>
            <td>WWW Home </td>
            <td></td>
            <td>0xE0 0x32</td>
            <td>0xE0 0xB2<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWBack</td>
            <td>121</td>
            <td>WWW Back </td>
            <td></td>
            <td>0xE0 0x6A</td>
            <td>0xE0 0xEA<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWForward</td>
            <td>122</td>
            <td>WWW Forward </td>
            <td></td>
            <td>0xE0 0x69</td>
            <td>0xE0 0xE9<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWStop</td>
            <td>123</td>
            <td>WWW Stop </td>
            <td></td>
            <td>0xE0 0x68</td>
            <td>0xE0 0xE8<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWRefresh</td>
            <td>124</td>
            <td>WWW Refrash </td>
            <td></td>
            <td>0xE0 0x67</td>
            <td>0xE0 0xE7<br />
            </td>
        </tr>
        <tr valign="top">
            <td>WWWFavorites</td>
            <td>125</td>
            <td>WWW Favorites </td>
            <td></td>
            <td>0xE0 0x66</td>
            <td>0xE0 0xE6<br />
            </td>
        </tr>
    </tbody>
</table>
</center>
<img src ="http://www.blogjava.net/sodar-fish/aggbug/144361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sodar-fish/" target="_blank">SodaR FisH (苏达小鱼)</a> 2007-09-11 21:12 <a href="http://www.blogjava.net/sodar-fish/articles/144361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>