日志分类:Windows应用

解决 IPv6 路由发现协议得到错误地址的问题

2010/01/15 | 23:59 | 分类:Windows应用 | 标签: | 854次阅读

  IPv6 环境一般使用 DHCPv6ICMPv6 协议自动配置网络参数,网关配置错误或多个网关的存在会导致客户端得到错误或冲突的配置参数。最近在我使用的 IPv6 环境中,就出现了网关同时给一个客户端分配多组 IPv6 地址、两个 IPv6 路由的问题,这使得路由发生混乱,IPv6 网络无法连通。由于种种原因,网管一直未能解决此问题,我们只好试图在客户端动动脑筋。
  按照 IPv4 的经验,如果 DHCP 有问题,直接手工配置静态地址即可。但我们的环境中,即使手工配置了静态的 IPv6 地址和路由,发现没过多久又会恢复原状。看来还是有一定的自动配置机制在作祟。经搜索得知,这是 ICMPv6 的路由发现(Router Discovery)特性,系统会根据其收到的 ICMPv6 包自动修改 IPv6 配置。下面要做的就是过滤与路由发现相关的包。
  在 Linux 下,可以使用 ip6tables(即 iptables 的 IPv6 版本)过滤相应的 ICMPv6 包:

  1. /sbin/ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j DROP

  可以将上述命令加入 /etc/rc.local。或使用 ip6tables-save 导出到文件,在启动网络前使用 ip6tables-restore 恢复。
  在 Windows Vista/7 或 Windows Server 2008 以后的版本,可以使用这条命令:

  1. netsh interface ipv6 set interface "[你的网卡名称,比如 Local Area Connection]" routerdiscovery=disable

  执行一次之后持久生效,重启后不用再次执行。
  而在 Windows XP 下,目前还没有发现很好的办法。XP 对 IPv6 的支持仅仅是一个“预发行版”,实现并不完善。手工配置 IPv6 地址和路由只能使用“ipv6 adu”、“ipv6 rtu”命令,而没有图形界面支持;虽然 XP SP2 以后 Windows 防火墙加入了 IPv6 支持,但仍不支持 ICMPv6。我没有查到 XP 下屏蔽路由发现协议的标准方法,目前可行的办法是使用支持 ICMPv6 的第三方防火墙软件,比如 ZONEALARM Internet Security 8 以上版本。

搜狗拼音与 Foxmail 引发的灵异邮件

2009/09/25 | 13:48 | 分类:Windows应用 | 标签: | 829次阅读

  当你发现你收到的多封邮件中,同一个人的名字都被“死”字代替,这是不是一件恐怖的灵异事件?这事就被我遇到了。不过经分析,这只是搜狗拼音输入法与 Foxmail 引发的一个小问题。

搜狗拼音与 Foxmail 引发的灵异邮件

  出问题的名字是“查老师”,“”在姓氏中读“zhā”。在搜狗拼音中,输入“zha”,“查”字的排名比较靠后;然而有一个与“查”字外形相似的“”字(注意下面是“且”而不是“旦”)却像李鬼一般地排在了“查”字之前(它做了 SEO 吧 :) )。“査”是一个不常用的 GBK 汉字,但是发件人使用的 Foxmail 客户端生成的 MIME 消息中,标称的 charset 却写的是默认的 GB2312(严格地说也算 bug)。于是在我的客户端里,“査”字(96CB)没有被当作 GBK 正确解码,它的第二字节(CB)与“老”字(C0CF)的第一字节(C0)结合,恰好构成了“死”字(CBC0)。
  提醒使用拼音输入法的同学,不要再把“查”误输入为“査”。如果怕输错,可以直接用“cha”代替“zha”。而在邮件客户端方面,可以设置发出的邮件编码,用 GBK 或 UTF-8 取代 GB2312,以免少数非常用汉字导致接收方解析出错,造成对方收到“死”这种很不礼貌的灵异邮件。

消除 koomail 的“余孽”

2009/08/27 | 22:55 | 分类:Windows应用 | 标签: | 736次阅读

  koomail 曾是一个简洁小巧的 Windows 邮件客户端,是抵制 Foxmail 的良好选择,我使用它大约有两年了。但自从某个版本开始,koomail 界面变得花哨,不断增加一些华而不实的功能,还在主界面弄出了“山寨酷友”之类的 SNS 广告。相反地,我发现并上报的一些 bugs(涉及远程邮箱管理、RSS 阅读等)它却迟迟没有修复;我在其论坛提出的一些建议(诸如回复邮件时给原文前加上“>”这样的基本功能)也没有得到过作者的重视。于是,今天决定抛弃 koomail,在 Wikipedia 上另找一些优秀的邮件客户端。
  在研究这些客户端的过程中,发现老外们整出来的 mboxMaildirMH 等一系列邮件存储格式还是比较有用的。使用这些规范的格式毕竟有助于软件更替和数据移植,因此格式支持成为我考虑的重要因素。在将 koomail 的邮件导入其它客户端时,我发现部分邮件会被报告 MIME 错误,或者只能看到邮件头而看不到正文。经查这是因为 koomail 保存邮件时,将 SMTP(RFC 2821)中表示通信结束的“.”也存入了邮件文件,还在后面追加了一行不知做什么用的“k[0x01]m”。而 mbox 等格式规定文件只需存储 RFC 2822 消息本身。明白了原因,就可以写一个 bash 脚本来处理所有的邮件,消除 koomail 留下的两行“余孽”,让其它客户端可以正常读取:

  1. #!/bin/bash
  2.  
  3. for file in *; do
  4.     echo "$file"
  5.     sed -i 's/^k\x01m\x0d$/\x0d/g' "$file"
  6.     sed -i 's/^\.\x0d$/\x0d/g' "$file"
  7. done

  这时使用 Claws-Mail 客户端读入邮件(因为它和 koomail 一样,每封邮件是一个独立的文件),导出为 mbox 之后再在 Thunderbird 等其它客户端中阅读也是正常的。

Firefox Key

2009/07/28 | 20:29 | 分类:Windows应用 | 标签: | 907次阅读

  从 Open Party 得到的可爱的 Firefox 贴纸可以怎么玩呢?那个圆形的小 logo 似乎可以这样子:
 
  My Firefox Key at DELL SK-8115:
Firefox Key
 
  Shortcut key in CentOS:
Firefox Key
 
  Shortcut key in Windows:
Firefox Key
 
  嗯,设置完毕之后,随手按下 Win+L 准备锁定屏幕、出去倒杯茶,才发现 Win 键按下之后 Firefox 欢腾地启动了……

Windows Live Messenger drag & drop 小技巧

2009/06/16 | 21:35 | 分类:Windows应用 | 标签: | 822次阅读

  无意中发现 Windows Live Messenger 的一个小技巧:把联系人拖放到 gtalk 或 Fetion、Baidu Hi 的聊天窗口本文输入框中,相应区域就会显示这个联系人的 Live ID(Email)。其实 Windows 的 drag & drop 的原理挺简单的,但 Live Messenger 使用文本格式的 drag & drop 数据,这倒是增强了程序的互操作性。Fetion 和 Baidu Hi 的联系人也是可以 drag & drop 的,但它们使用的是封装过的对象,所以不能把账号什么的以文本形式拖放到别的软件的窗口中。有趣的是,Live Messenger 不能把联系人的 Live ID 拖放到自身的聊天窗口中,如果拖放到非文本区域代表的是加入多人会话。
  顺手写了一个查看 drag & drop 信息的小程序(需要安装 .Net Framework 3.5),含 C# 源代码,需要的朋友可以下载:
  http://files.linjian.org/dotNet/dragdroppad.zip
  http://www.linjian.cn/files/dotNet/dragdroppad.zip
Windows Live Messenger drag & drop 小技巧

页面存档: 上页 1 2 3 4 下页