目录(?)[+]
家里的电信还没有通IPv6,突然想去六维上面下几部电影(其实想看一下最近的新片出了没有)。
有一些现成的软件就可以使用,但是我总觉的这样不够好,至少要略略知道一点点原理的好。
现成的软件包括
六飞
http://www.6fei.com.cn/
Veno
http://www.veno2.com/
这两个东西,其实不仅支持在IPv4的环境下访问IPv6的网站而且也支持在IPv6的环境下访问IPv4的网站。
后一半的功能,具体我不知道他们是如何实现的,应该是类似代理之类的。后面这个功能都是要收费的,是在恶心得很。
还是言归正传,现在通过IPv4到IPv6的技术基本上有三种 Teredo isatap 6to4
这三种协议各有有缺,基本的原理都是通过中间一层服务吧IPv6的数据包拆分成IPv4的数据包,然后在网络上跑,最后再并起来。
他们都是作为在IPv4 和IPv6环境过渡中的产物。让几个IPv6的孤岛在IPv4这片大海洋上也能将进行通讯
Teredo 叫做 面向 IPv6的IPv4 NAT 网络地址协议穿越,他是这三种协议中唯一支持内网的协议了
它的缺点是,在已知的为数不多几个服务器都在外国,速度很不给力
不过这个时内网条件下的唯一方案,当然有些牛人有比较强大的路由器通过改写iptables,可以强制把isatap的数据都转发进内网,今天暂时不想讨论这个。
下面写具体怎么做
1、用管理员权限运行命令提示符
2、设置服务器地址
teredo.ipv6.microsoft.com是服务器地址,可以换成其他的服务器
3、设置客户端类型
4、修改主机hosts 文件(c:\WINDOWS\system32\drivers\etc\hosts)
首先添加这2行
然后选择行添加一些host,
要访问六维就添加
2001:da8:9000::232 bt.neu6.edu.cn
更多的可以参考
https://docs.google.com/View?id=dfkdmxnt_61d9ck9ffq&pli=1
这样就惊醒浏览了,下载没有问题,唯一的问题就是太慢了。
下面是一些服务器的地址和所在位置
teredo.remlab.net / teredo-debian.remlab.net (法国) (Miredo 默认设置)
teredo.autotrans.consulintel.com (西班牙)
teredo.ipv6.microsoft.com (美国 雷蒙德) (Windows XP/2003/Vista/7/2008 系统默认设置)
teredo.ngix.ne.kr (韩国)
teredo.managemydedi.com (美国 芝加哥)
ISATAP ( Intra-Site Automatic Tunnel Addressing Protocol,站内自动隧道寻址协议)。这个是现有的最好的方案了,你需要的是一个公网地址。国内好多大学都提供了isatap服务器,速度可以达到本身的快带极限,家里4M网络下载六维也算毫无压力了。
它的原理是在特殊的IPv6地址中内嵌的IPv4地址,这个地址称为ISATAP地址。地址的格式为
::0:5EFE:w.x.y.z
w.x.y.z部分是任意的单播IPv4地址,既可以是私有地址,也可以是公共地址。
内嵌的IPv4地址的作用是:在发往ISATAP地址的IPv6通信流通过隧道跨越了IPv4网络后,可用它来确定IPv4报头中的源IPv4地址或目标IPv4地址。
它的主要缺陷其实是安全问题,这里就不更多讨论了。
使用方法也很简单,也是用管理员权限运行命令提示符执行以下两条命令
其中isatap.sjtu.edu.cn是上海交大的地址。
很多国内的大学都有,速度很好。网上随意搜一搜,就有。
就没有必要用一些外国的服务器了。
6TO4在说这个之前,要回过头说以下以上两个配置后命令提示符不要关闭,关闭了隧道就会断开,有需要的话,可以把配置写死,这样就是重启也可以访问,介于回学校之后就没有这需要了,我就没有进行这样的配置。
6to4这个协议从表面上看和isatap很相似。(数据包格式当然有很大不用)
IPv4兼容iisatap,能够使隧道自动生成。只需要告诉设备隧道的起点,则隧道的终点由设备自动生成。IPv4兼容isatap使用特殊的IPv4兼容IPv6地址:其前缀为0.0.0.0.0.0,最后32位为IPv4地址。而6to4隧道使用特定的6to4地址。
具体的设置就比较麻烦了。
具体可参考
http://blog.csdn.net/ast_224/article/details/4036556
1.下载 tslib-1.4
2、解压安装tslib
# tar -zxvf tslib-1.4.tar.gz
# cd tslib
# ./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache
# ./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/home/hero/tslib
# make
# make install
说明:
(1)红色的“0”是数字0;(2)/home/hero/tslib表示tslib安装后的路径
3、修改ts.conf内容
# vi /usr/local/tslib/etc/ts.conf
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
然后将整个tslib文件夹,下载到开发板的对应路径下(/usr/local)。
4、开发板配置环境变量
通过超级终端,# vi /etc/profile
添加如下内容(绿色):
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event0 指定触屏设备
export TSLIB_CALIBFILE=/etc/pointercal 指定触摸屏校准文件pintercal的存放位置
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf 指定TSLIB配置文件的位置
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 指定触摸屏插件所在路径
export TSLIB_FBDEVICE=/dev/fb0 指定帧缓冲设备
export TSLIB_CONSOLEDEVICE=none 设定控制台设备为none,否则默认为/dev/tty,这样可以避免出现“open
consoledevice: No such file or directory KDSETMODE: Bad file descriptor”的错误
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
另外,要确保在/dev/input/目录下有event0设备文件,在/dev/目录下有fb0设备文件,如果没有,在执行下面./ts_calibrate的时候,会报出“open *: No such file or directory”的错误,这时,我们需要手动创建设备文件:
# mknod /dev/input/event0 c 13 64
# mknod /dev/fb0 c 29 0
5、执行测试命令
重启开发板,在 /usr/local/tslib/bin 目录下,输入./ts_calibrate,出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。
./autogen.sh: 4: autoreconf: not found
是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是
因为没有安装
automake 工具, (ubuntu 8.04)用下面的命令安装好就可以了。
sudo apt-get install autoconf automake libtool
./configure --host=arm-linux --prefix=/home/smb/tslib ac_cv_func_malloc_0_nonnull=yes --enable-inputapi=no
其中ac_cv_func_malloc_0_nonnull=yes 是为解决如下编译错误设置的
ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa20): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
--enable-inputapi=no. 是为了解决运行中提示 ts_open:Inappropriate ioctol for device,它表示
即不使用ioctl来控制触摸屏。但是我在几个板没有碰到这样提示--enable-inputapi=no
利用微信的公众平台接口,我开发了一款“开窗”小游戏。玩过文曲星的同学对这款小游戏不会陌生。
除了实现游戏本身的逻辑,我还加入了“入门级”、“初级”、“中级”、“高级”等不同的游戏难度。每个难度等级就是一个独立的房间,拥有独立的擂主(用最少步数完成目标)。如果你坐上擂主之位,就能向房间里所有的玩家发一句擂主宣言!
为了让大家快速上手,游戏还提供了额外的“教程”房间,一步一步教你所有规则!就像try-clojure这种在线的教程一样。
欢迎大家扫描下面的二维码,或者搜索公众帐号“开窗”来添加游戏。